| 1234567891011121314151617181920212223242526272829303132 |
- // Copyright (C) 2014-2015 Jakob Borg and Contributors (see the CONTRIBUTORS file).
- package main
- import (
- "database/sql"
- "fmt"
- )
- type setupFunc func(db *sql.DB) error
- type compileFunc func(db *sql.DB) (map[string]*sql.Stmt, error)
- var (
- setupFuncs = make(map[string]setupFunc)
- compileFuncs = make(map[string]compileFunc)
- )
- func register(name string, setup setupFunc, compile compileFunc) {
- setupFuncs[name] = setup
- compileFuncs[name] = compile
- }
- func setup(backend string, db *sql.DB) (map[string]*sql.Stmt, error) {
- setup, ok := setupFuncs[backend]
- if !ok {
- return nil, fmt.Errorf("Unsupported backend")
- }
- if err := setup(db); err != nil {
- return nil, err
- }
- return compileFuncs[backend](db)
- }
|