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) }