/ executer.go
executer.go
1 package dispatch2 2 3 import "context" 4 5 type Executer[Config any] interface { 6 Execute(context.Context, *Config, []string) error 7 } 8 9 type ExecuterFunc[Config any] func(context.Context, *Config, []string) error 10 11 func (e ExecuterFunc[Config]) Execute(ctx context.Context, config *Config, args []string) error { 12 return e(ctx, config, args) 13 } 14 15 func WrapExecuter[Config any](e Executer[Config]) ExecuterFunc[Config] { 16 return func(ctx context.Context, cfg *Config, args []string) error { 17 return e.Execute(ctx, cfg, args) 18 } 19 } 20 21 func EmptyExecuter[Config any]() ExecuterFunc[Config] { 22 return func(_ context.Context, _ *Config, _ []string) error { 23 return nil 24 } 25 }