Adding upstream version 3.10.8.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
37e9b6d587
commit
03bfe4079e
356 changed files with 28857 additions and 0 deletions
35
options/factory.go
Normal file
35
options/factory.go
Normal file
|
@ -0,0 +1,35 @@
|
|||
// Copyright Earl Warren <contact@earl-warren.org>
|
||||
// Copyright Loïc Dachary <loic@dachary.org>
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
package options
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
)
|
||||
|
||||
type (
|
||||
Factory func() Interface
|
||||
Factories map[string]Factory
|
||||
)
|
||||
|
||||
var factories = make(Factories, 10)
|
||||
|
||||
func GetFactories() Factories {
|
||||
return factories
|
||||
}
|
||||
|
||||
func RegisterFactory(name string, factory Factory) {
|
||||
name = strings.ToLower(name)
|
||||
factories[name] = factory
|
||||
}
|
||||
|
||||
func GetFactory(name string) Factory {
|
||||
name = strings.ToLower(name)
|
||||
factory, ok := factories[name]
|
||||
if !ok {
|
||||
panic(fmt.Errorf("no options factory registered for %s", name))
|
||||
}
|
||||
return factory
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue