init
This commit is contained in:
28
internal/jobdef/registry.go
Normal file
28
internal/jobdef/registry.go
Normal file
@@ -0,0 +1,28 @@
|
||||
package jobdef
|
||||
|
||||
type Registry struct {
|
||||
items map[string]Handler
|
||||
}
|
||||
|
||||
func NewRegistry(handlers ...Handler) *Registry {
|
||||
items := make(map[string]Handler, len(handlers))
|
||||
for _, handler := range handlers {
|
||||
items[handler.Key()] = handler
|
||||
}
|
||||
|
||||
return &Registry{items: items}
|
||||
}
|
||||
|
||||
func (r *Registry) Get(key string) (Handler, bool) {
|
||||
handler, ok := r.items[key]
|
||||
return handler, ok
|
||||
}
|
||||
|
||||
func (r *Registry) List() []Handler {
|
||||
result := make([]Handler, 0, len(r.items))
|
||||
for _, handler := range r.items {
|
||||
result = append(result, handler)
|
||||
}
|
||||
|
||||
return result
|
||||
}
|
||||
Reference in New Issue
Block a user