1
0
Fork 0
mirror of https://github.com/eosswedenorg/thalos synced 2026-06-16 04:24:56 +02:00
thalos/internal/cache/factory.go

26 lines
522 B
Go

package cache
import (
"fmt"
"github.com/karlseguin/typed"
)
type Factory func(opts typed.Typed) (Store, error)
var factories = map[string]Factory{
"memory": func(opts typed.Typed) (Store, error) {
return NewMemoryStore(), nil
},
}
func RegisterFactory(driver string, factory Factory) {
factories[driver] = factory
}
func Make(driver string, opts typed.Typed) (Store, error) {
if factory, ok := factories[driver]; ok {
return factory(opts)
}
return nil, fmt.Errorf("Invalid cache storage: %s", driver)
}