20 lines
370 B
Go
20 lines
370 B
Go
package dbwrapper
|
|
|
|
import "fmt"
|
|
|
|
type Factory func() DbWrapper
|
|
|
|
var drivers = make(map[string]Factory)
|
|
|
|
func Register(name string, factory Factory) {
|
|
drivers[name] = factory
|
|
}
|
|
|
|
func New(driverType string) (DbWrapper, error) {
|
|
factory, ok := drivers[driverType]
|
|
if !ok {
|
|
return nil, fmt.Errorf("driver not yet supported: %s", driverType)
|
|
}
|
|
return factory(), nil
|
|
}
|