package db0301 type DB struct { KV KV } func (db *DB) Open() error { return db.KV.Open() } func (db *DB) Close() error { return db.KV.Close() } func (db *DB) Select(schema *Schema, row Row) (ok bool, err error) { key := row.EncodeKey(schema) val, ok, err := db.KV.Get(key) if err != nil || !ok { return ok, err } if err = row.DecodeVal(schema, val); err != nil { return false, err } return true, nil } func (db *DB) Insert(schema *Schema, row Row) (updated bool, err error) { key := row.EncodeKey(schema) val := row.EncodeVal(schema) return db.KV.SetEx(key, val, ModeInsert) } func (db *DB) Upsert(schema *Schema, row Row) (updated bool, err error) { key := row.EncodeKey(schema) val := row.EncodeVal(schema) return db.KV.SetEx(key, val, ModeUpsert) } func (db *DB) Update(schema *Schema, row Row) (updated bool, err error) { key := row.EncodeKey(schema) val := row.EncodeVal(schema) return db.KV.SetEx(key, val, ModeUpdate) } func (db *DB) Delete(schema *Schema, row Row) (deleted bool, err error) { key := row.EncodeKey(schema) return db.KV.Del(key) } // QzBQWVJJOUhU https://trialofcode.org/