summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/xordataexchange/crypt/backend/backend.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/xordataexchange/crypt/backend/backend.go')
-rw-r--r--vendor/github.com/xordataexchange/crypt/backend/backend.go32
1 files changed, 32 insertions, 0 deletions
diff --git a/vendor/github.com/xordataexchange/crypt/backend/backend.go b/vendor/github.com/xordataexchange/crypt/backend/backend.go
new file mode 100644
index 00000000..bfe894dc
--- /dev/null
+++ b/vendor/github.com/xordataexchange/crypt/backend/backend.go
@@ -0,0 +1,32 @@
+// 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
+}