github.com/insionng/yougam@v0.0.0-20170714101924-2bc18d833463/libraries/go-xorm/core/driver.go (about) 1 package core 2 3 type Driver interface { 4 Parse(string, string) (*Uri, error) 5 } 6 7 var ( 8 drivers = map[string]Driver{} 9 ) 10 11 func RegisterDriver(driverName string, driver Driver) { 12 if driver == nil { 13 panic("core: Register driver is nil") 14 } 15 if _, dup := drivers[driverName]; dup { 16 panic("core: Register called twice for driver " + driverName) 17 } 18 drivers[driverName] = driver 19 } 20 21 func QueryDriver(driverName string) Driver { 22 return drivers[driverName] 23 } 24 25 func RegisteredDriverSize() int { 26 return len(drivers) 27 }