kv

package
v0.0.0-...-5caafa1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 27, 2022 License: MIT Imports: 3 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrKeyNotFound = errors.New("key not found")

ErrKeyNotFound is returned when a key is not found.

View Source
var ErrKeyspaceNotFound = errors.New("keyspace not found")

ErrKeyspaceNotFound is returned when the keyspace requested is not found in the store.

Functions

This section is empty.

Types

type BatchError

type BatchError struct {
	Errors []error
}

BatchError is a struct containing a slice of errors which also implements the error interface. It is returned when any item in a batch requested via Get results in an error. The errors are indexed based on the key requested in the GetOptions supplied to Get.

func (BatchError) Error

func (b BatchError) Error() string

Error returns a string representations of the BatchError

type GetOptions

type GetOptions struct {
	Keys [][]byte
}

GetOptions defines a set of keys which refer to a set of items in a keyspace.

It is used in a call to KeyspaceView.Get to fetch a batch of items.

func Batch

func Batch(keys ...[]byte) GetOptions

Batch returns a GetOptions which refers to all keys in the set.

func Key

func Key(key []byte) GetOptions

Key returns a GetOptions which refers to a single key.

type Item

type Item struct {
	K, V []byte
}

Item is a single entry in a Key/Value keyspace in a Key/Value store.

type KeyspaceUpdate

type KeyspaceUpdate interface {
	KeyspaceView

	Put(_ context.Context, k, v []byte) error
	Delete(_ context.Context, k []byte) error
}

KeyspaceUpdate is a read-write interface across a particular keyspace, which can: Range across the keyspace. Put into the keyspace. Delete from the keyspace.

type KeyspaceView

type KeyspaceView interface {
	Get(context.Context, GetOptions) ([]Item, error)
	Range(context.Context, ...RangeOption) ([]Item, error)
}

KeyspaceView is a read-only client for accessing ranges of a single keyspace in a Key/Value store.

type RangeOption

type RangeOption func(*RangeOptions)

RangeOption is a function which configures a RangeOptions

func End

func End(key []byte) RangeOption

End configures the exclusive end of a Range call. See RangeOptions{}.

func Limit

func Limit(n int) RangeOption

Limit configures the maximum number of items to return in a Range call. See RangeOptions{}.

func Start

func Start(key []byte) RangeOption

Start configures the inclusive beginning of a Range call. See RangeOptions{}.

type RangeOptions

type RangeOptions struct {
	// Start defines the inclusive beginning of the range requested in the keyspace.
	// If Start == nil, this refers to the beginning of the keyspace.
	// If Start != nil, this refers to items with key >= start.
	Start []byte
	// End defines the exclusive end of the range requested in the keyspace.
	// If End == nil, this refers to all keys until the end of the keyspace.
	// If End != nil, this refers to items with key < end.
	End []byte
	// Limit is the maximum number of items to return.
	Limit int
}

RangeOptions is used when requesting a Range of items from a key/value store.

It us used in a call to KeyspaceView.Range to fetch a sequence of items. It defines the start, end and a limit on the number of items returned. The zero-value of range options represents a request for the entire keyspace.

type Store

type Store interface {
	View(func(View) error) error
	Update(func(Update) error) error
}

Store represents a Key/Value store which support both read-only (View) and read-write (Update) transactional operations.

type Update

type Update interface {
	CreateKeyspace([]byte) error
	Keyspace([]byte) (KeyspaceUpdate, error)
}

Update is a read-write transaction of a KV store. It supports creating new keyspaces as well as obtaining mutable KeyspaceUpdate; used to perform keyspace updates.

type View

type View interface {
	Keyspace([]byte) (KeyspaceView, error)
}

View is a read-only transactional view of a KV store. It can be used to execute read-operations across one or more of keyspaces.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL