package transform import "fmt" type Registry struct { transformers map[string]Transformer } func NewRegistry() *Registry { return &Registry{transformers: make(map[string]Transformer)} } func (r *Registry) Register(name string, transformer Transformer) error { if name == "" { return fmt.Errorf("transform name is required") } if transformer == nil { return fmt.Errorf("transformer %s is nil", name) } if _, exists := r.transformers[name]; exists { return fmt.Errorf("transform %s is already registered", name) } r.transformers[name] = transformer return nil } func (r *Registry) Get(name string) (Transformer, bool) { transformer, ok := r.transformers[name] return transformer, ok }