//go:build !mipsle && !riscv64 // +build !mipsle,!riscv64 package database import ( "errors" "imuslab.com/zoraxy/mod/database/dbbolt" "imuslab.com/zoraxy/mod/database/dbinc" "imuslab.com/zoraxy/mod/database/dbleveldb" ) func newDatabase(dbfile string, backendType dbinc.BackendType) (*Database, error) { if backendType == dbinc.BackendFSOnly { return nil, errors.New("Unsupported backend type for this platform") } if backendType == dbinc.BackendLevelDB { db, err := dbleveldb.NewDB(dbfile) return &Database{ Db: nil, BackendType: backendType, Backend: db, }, err } db, err := dbbolt.NewBoltDatabase(dbfile) return &Database{ Db: nil, BackendType: backendType, Backend: db, }, err } func (d *Database) newTable(tableName string) error { return d.Backend.NewTable(tableName) } func (d *Database) tableExists(tableName string) bool { return d.Backend.TableExists(tableName) } func (d *Database) dropTable(tableName string) error { return d.Backend.DropTable(tableName) } func (d *Database) write(tableName string, key string, value interface{}) error { return d.Backend.Write(tableName, key, value) } func (d *Database) read(tableName string, key string, assignee interface{}) error { return d.Backend.Read(tableName, key, assignee) } func (d *Database) keyExists(tableName string, key string) bool { return d.Backend.KeyExists(tableName, key) } func (d *Database) delete(tableName string, key string) error { return d.Backend.Delete(tableName, key) } func (d *Database) listTable(tableName string) ([][][]byte, error) { return d.Backend.ListTable(tableName) } func (d *Database) close() { d.Backend.Close() }