frostfs-node/pkg/local_object_storage/kvio/bbolt/cursor.go
Alejandro Lopez 00c8712dc6 [#421] Create common interface for kv repositories
Signed-off-by: Alejandro Lopez <a.lopez@yadro.com>
2023-06-20 12:54:53 +03:00

19 lines
658 B
Go

package bbolt
import (
"git.frostfs.info/TrueCloudLab/frostfs-node/pkg/local_object_storage/kvio"
"go.etcd.io/bbolt"
)
type cursor struct {
cur *bbolt.Cursor
key []byte
val []byte
}
func (c *cursor) Key() kvio.Key { return c.key }
func (c *cursor) Rewind() { c.key, c.val = c.cur.First() }
func (c *cursor) Seek(k kvio.Key) { c.key, c.val = c.cur.Seek(k) }
func (c *cursor) Next() { c.key, c.val = c.cur.Next() }
func (c *cursor) Close() {}
func (c *cursor) Value(f func(kvio.Value) error) error { return f(c.val) }