41 lines
706 B
Go
41 lines
706 B
Go
package db
|
|
|
|
import "github.com/dgraph-io/badger/v3"
|
|
|
|
type BadgerDB struct {
|
|
db *badger.DB
|
|
}
|
|
|
|
func (b *BadgerDB) NewTransaction(readonly bool) DBTxn {
|
|
return &BadgerDBTxn{
|
|
txn: b.db.NewTransaction(readonly),
|
|
}
|
|
}
|
|
|
|
type BadgerDBTxn struct {
|
|
txn *badger.Txn
|
|
}
|
|
|
|
func (t *BadgerDBTxn) Set(key []byte, value []byte) error {
|
|
return t.txn.Set(key, value)
|
|
}
|
|
|
|
func (t *BadgerDBTxn) Delete(key []byte) error {
|
|
return t.txn.Delete(key)
|
|
}
|
|
|
|
func (t *BadgerDBTxn) Get(key []byte) ([]byte, error) {
|
|
item, err := t.txn.Get(key)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return item.ValueCopy(nil)
|
|
}
|
|
|
|
func (t *BadgerDBTxn) Commit() error {
|
|
return t.txn.Commit()
|
|
}
|
|
|
|
func (t *BadgerDBTxn) Discard() {
|
|
t.txn.Discard()
|
|
}
|