mirror of
https://github.com/langhuihui/monibuca.git
synced 2025-12-24 13:48:04 +08:00
- Refactor frame converter implementation - Update mp4 track to use ICodex - General refactoring and code improvements 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
68 lines
1.1 KiB
Go
68 lines
1.1 KiB
Go
package task
|
|
|
|
type Work struct {
|
|
Job
|
|
}
|
|
|
|
func (m *Work) keepalive() bool {
|
|
return true
|
|
}
|
|
|
|
func (*Work) GetTaskType() TaskType {
|
|
return TASK_TYPE_Work
|
|
}
|
|
|
|
type WorkCollection[K comparable, T interface {
|
|
ITask
|
|
GetKey() K
|
|
}] struct {
|
|
Work
|
|
}
|
|
|
|
func (c *WorkCollection[K, T]) Find(f func(T) bool) (item T, ok bool) {
|
|
c.RangeSubTask(func(task ITask) bool {
|
|
if v, _ok := task.(T); _ok && f(v) {
|
|
item = v
|
|
ok = true
|
|
return false
|
|
}
|
|
return true
|
|
})
|
|
return
|
|
}
|
|
|
|
func (c *WorkCollection[K, T]) Get(key K) (item T, ok bool) {
|
|
var value any
|
|
value, ok = c.children.Load(key)
|
|
if ok {
|
|
item, ok = value.(T)
|
|
}
|
|
return
|
|
}
|
|
|
|
func (c *WorkCollection[K, T]) Range(f func(T) bool) {
|
|
c.RangeSubTask(func(task ITask) bool {
|
|
if v, ok := task.(T); ok && !f(v) {
|
|
return false
|
|
}
|
|
return true
|
|
})
|
|
}
|
|
|
|
func (c *WorkCollection[K, T]) Has(key K) (ok bool) {
|
|
_, ok = c.children.Load(key)
|
|
return
|
|
}
|
|
|
|
func (c *WorkCollection[K, T]) ToList() (list []T) {
|
|
c.Range(func(t T) bool {
|
|
list = append(list, t)
|
|
return true
|
|
})
|
|
return
|
|
}
|
|
|
|
func (c *WorkCollection[K, T]) Length() int {
|
|
return int(c.Size.Load())
|
|
}
|