Files
dns-autoresolver/internal/provider/registry/registry.go
T

29 lines
532 B
Go

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
}