26 lines
367 B
Go
26 lines
367 B
Go
package internal
|
|
|
|
import "fmt"
|
|
|
|
type FuncTask struct {
|
|
*BaseTask
|
|
|
|
f func() error
|
|
}
|
|
|
|
func NewFuncTask(f func() error) *FuncTask {
|
|
return &FuncTask{
|
|
BaseTask: NewBaseTask(),
|
|
|
|
f: f,
|
|
}
|
|
}
|
|
|
|
func (t *FuncTask) String() string { return fmt.Sprintf("%T: %s", t, t.ID()) }
|
|
func (t *FuncTask) Run() error {
|
|
defer t.Done()
|
|
t.SetState(TaskStateRunning)
|
|
|
|
return t.f()
|
|
}
|