sideEffectTaskDiscardFn sideEffectTaskDiscardFn,
opts ...RegistrableTaskOption,
rt := &RegistrableTask{
taskType: taskType,
goType: goType,
componentGoType: componentGoType,
validateFn: validateFn,
pureTaskExecuteFn: pureTaskExecuteFn,
sideEffectTaskExecuteFn: sideEffectTaskExecuteFn,
sideEffectTaskDiscardFn: sideEffectTaskDiscardFn,
isPureTask: isPureTask,
}
for _, opt := range opts {
opt(rt)
}
}