tdb/iteration.go

28 lines
632 B
Go

package tdb
import (
"github.com/golang/protobuf/proto"
bolt "go.etcd.io/bbolt"
)
var (
ContinueIteration IterationSignal = true
StopIteration IterationSignal = false
)
type IterationSignal bool
type Iterable interface {
Iterate(Iterator, ...*Tx) error
IterateKeys(KeyIterator, ...*Tx) error
}
type rawIterable interface {
iterateRaw(rawIterator, ...*Tx) error
}
type rawIterator func(dbPtrValue) (IterationSignal, error)
type Iterator func(proto.Message) (IterationSignal, error)
type KeyIterator func([]byte) (IterationSignal, error)
type keyIteratorWithBucket func([]byte, *bolt.Bucket) (IterationSignal, error)