wip: oci
This commit is contained in:
28
database/cache/registry.go
vendored
Normal file
28
database/cache/registry.go
vendored
Normal file
@@ -0,0 +1,28 @@
|
||||
package cache
|
||||
|
||||
import "fmt"
|
||||
|
||||
var drivers = make(map[string]Driver)
|
||||
|
||||
func Register(name string, driver Driver) {
|
||||
if driver == nil {
|
||||
panic("cache: Register driver is nil")
|
||||
}
|
||||
if _, dup := drivers[name]; dup {
|
||||
panic("cache: Register called twice for driver " + name)
|
||||
}
|
||||
drivers[name] = driver
|
||||
}
|
||||
|
||||
func Open(config *Config) (Cache, error) {
|
||||
if config.Driver == "redis" {
|
||||
return NewRedis(config)
|
||||
}
|
||||
|
||||
driver, ok := drivers[config.Driver]
|
||||
if !ok {
|
||||
return nil, fmt.Errorf("unknown driver %q (forgotten import?)", config.Driver)
|
||||
}
|
||||
|
||||
return driver.Cache(config)
|
||||
}
|
||||
Reference in New Issue
Block a user