93
// RegisterImmediateExecutor registers an [ImmediateExecutor] for the given task type.
94
// Returns an [ErrDuplicateRegistration] if an executor for the type has already been registered.
95
>
func RegisterImmediateExecutor[T Task](r *Registry, executor ImmediateExecutor[T]) error {
registry.go
96
>
var task T
97
>
taskType := task.Type()
98
>
// The executors are registered in pairs, so only need to check in one map.
99
>
if existing, ok := r.immediateExecutors[taskType]; ok {
100
return fmt.Errorf(
101
"%w: executor already registered for task type %v: %v",