mirror of
https://github.com/42wim/matterbridge.git
synced 2024-11-29 14:12:02 -08:00
33 lines
830 B
Go
33 lines
830 B
Go
|
// Package backend provides the K/V store interface for crypt backends.
|
||
|
package backend
|
||
|
|
||
|
// Response represents a response from a backend store.
|
||
|
type Response struct {
|
||
|
Value []byte
|
||
|
Error error
|
||
|
}
|
||
|
|
||
|
// KVPair holds both a key and value when reading a list.
|
||
|
type KVPair struct {
|
||
|
Key string
|
||
|
Value []byte
|
||
|
}
|
||
|
|
||
|
type KVPairs []*KVPair
|
||
|
|
||
|
// A Store is a K/V store backend that retrieves and sets, and monitors
|
||
|
// data in a K/V store.
|
||
|
type Store interface {
|
||
|
// Get retrieves a value from a K/V store for the provided key.
|
||
|
Get(key string) ([]byte, error)
|
||
|
|
||
|
// List retrieves all keys and values under a provided key.
|
||
|
List(key string) (KVPairs, error)
|
||
|
|
||
|
// Set sets the provided key to value.
|
||
|
Set(key string, value []byte) error
|
||
|
|
||
|
// Watch monitors a K/V store for changes to key.
|
||
|
Watch(key string, stop chan bool) <-chan *Response
|
||
|
}
|