Files
docker-go-dev/pkg/tradebook/tradebook.go

41 lines
555 B
Go
Raw Normal View History

package tradebook
import (
"database/sql"
_ "modernc.org/sqlite"
)
type tradebook struct {
driver string
dsn string
db *sql.DB
}
type openOption func(*tradebook) error
func Open(opts ...openOption) (*tradebook, error) {
t := tradebook{}
// Apply Options
for _, opt := range opts {
opt(&t)
}
db, err := sql.Open(t.driver, t.dsn)
t.db = db
if (err == nil) {
err = db.Ping()
}
return &t, err
}
func Sqlite(fpath string) openOption {
return func(t *tradebook) error {
t.driver = "sqlite"
t.dsn = fpath
return nil
}
}