package registry import ( "fmt" "github.com/vasyakrg/dns-autoresolver/internal/provider" ) // Registry resolves providers by name. type Registry struct { m map[string]provider.Provider } func New() *Registry { return &Registry{m: make(map[string]provider.Provider)} } func (r *Registry) Register(p provider.Provider) { r.m[p.Name()] = p } func (r *Registry) ByName(name string) (provider.Provider, error) { p, ok := r.m[name] if !ok { return nil, fmt.Errorf("registry: unknown provider %q", name) } return p, nil }