in continue_with.go [8:16]
func ContinueWith[T any, S any](ctx context.Context, tsk *Task[T], next ContinueFunc[T, S]) *Task[S] {
return Start(ctx, func(fCtx context.Context) (S, error) {
result, err := tsk.Result(fCtx)
if err != nil {
return *new(S), err
}
return next(fCtx, result)
})
}