forked from TrueCloudLab/frostfs-node
21 lines
662 B
Go
21 lines
662 B
Go
package bbolt
|
|
|
|
import (
|
|
"git.frostfs.info/TrueCloudLab/frostfs-node/pkg/local_object_storage/kvio"
|
|
"go.etcd.io/bbolt"
|
|
)
|
|
|
|
type txImpl struct {
|
|
b *bbolt.Bucket
|
|
tx *bbolt.Tx
|
|
}
|
|
|
|
func (tx txImpl) Read(k kvio.Key, f func(kvio.Value) error) error { return f(tx.b.Get(k)) }
|
|
func (tx txImpl) Write(k kvio.Key, v kvio.Value) error { return tx.b.Put(k, v) }
|
|
func (tx txImpl) Delete(k kvio.Key) error { return tx.b.Delete(k) }
|
|
func (tx txImpl) IterateKeys() kvio.KeyCursor { return tx.Iterate() }
|
|
func (tx txImpl) Iterate() kvio.Cursor {
|
|
cur := tx.b.Cursor()
|
|
k0, v0 := cur.First()
|
|
return &cursor{cur, k0, v0}
|
|
}
|