Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ComplexRoStore ¶ added in v0.0.2
type ComplexRoStore interface {
RoStore
ForEach(fromPrefix string, walker func(k, v []byte) error) error
ForPrefix(prefix string, walker func(k, v []byte) error) error
ForAmount(prefix string, amount uint32, walker func(k, v []byte) error) error
View(ctx context.Context, f func(tx RoTx) error) error
BeginRo(ctx context.Context) (RoTx, error)
}
type ComplexStore ¶ added in v0.0.2
type PrefixIterator ¶ added in v0.0.2
type PrefixStore ¶ added in v0.0.2
type PrefixStore interface {
Store
// create an iterator with k as the prefix
GetPrefix(k string) (PrefixIterator, error)
}
Prefix store is a store that allows retreival by prefix
type RoCursor ¶ added in v0.0.2
type RoCursor interface {
First() (string, []byte, error) // First - position at first key/data item
Seek(seek string) (string, []byte, error) // Seek - position at first key greater than or equal to specified key
SeekExact(key string) (string, []byte, error) // SeekExact - position at exact matching key if exists
Next() (string, []byte, error) // Next - position at next key/value (can iterate over DupSort key/values automatically)
Prev() (string, []byte, error) // Prev - position at previous key
Last() (string, []byte, error) // Last - position at last key and last possible value
Current() (string, []byte, error) // Current - return key/data at current cursor position
Count() (uint64, error) // Count
Close()
}
type StatelessReadTx ¶ added in v0.0.2
type StatelessReadTx interface {
ComplexRoStore
Commit() error
Rollback()
Size() (uint64, error)
}
type StatelessTx ¶ added in v0.0.2
type Store ¶
type Store interface {
// Set stores the given value for the given key.
// The implementation automatically marshalls the value.
// The marshalling format depends on the implementation. It can be JSON, gob etc.
// The key must not be "" and the value must not be nil.
Set(k string, v any) error
// Get retrieves the value for the given key.
// The implementation automatically unmarshalls the value.
// The unmarshalling source depends on the implementation. It can be JSON, gob etc.
// The automatic unmarshalling requires a pointer to an object of the correct type
// being passed as parameter.
// In case of a struct the Get method will populate the fields of the object
// that the passed pointer points to with the values of the retrieved object's values.
// If no value is found it returns (false, nil).
// The key must not be "" and the pointer must not be nil.
Get(k string, v any) (found bool, err error)
// Delete deletes the stored value for the given key.
// Deleting a non-existing key-value pair does NOT lead to an error.
// The key must not be "".
Delete(k string) error
// Close must be called when the work with the key-value store is done.
// Most (if not all) implementations are meant to be used long-lived,
// so only call Close() at the very end.
// Depending on the store implementation it might do one or more of the following:
// Make sure all pending updates make their way to disk,
// finish open transactions,
// close the file handle to an embedded DB,
// close the connection to the DB server,
// release any open resources,
// etc.
// Some implementation might not need the store to be closed,
// but as long as you work with the gokv.Store interface you never know which implementation
// is passed to your method, so you should always call it.
Close() error
}
Store is an abstraction for different key-value store implementations. A store must be able to store, retrieve and delete key-value pairs, with the key being a string and the value being any Go any.
Click to show internal directories.
Click to hide internal directories.