pkg/output/registry.go (21 lines of code) (raw):

package output import ( "fmt" "github.com/elastic/go-ucfg" ) type Factory = func(*ucfg.Config) (Output, error) var registry = make(map[string]Factory) func Register(name string, factory Factory) error { if _, exists := registry[name]; exists { return fmt.Errorf("Error registering input '%s': already registered", name) } registry[name] = factory return nil } func GetFactory(name string) (Factory, error) { factory, exists := registry[name] if !exists { return nil, fmt.Errorf("Input %s not registered", name) } return factory, nil }