Library
Module
Module type
Parameter
Class
Class type
type error = [
| `Invalid_store
| `Msg of string
| `Dictionary_expected of Mirage_kv.Key.t
| `Not_found of Mirage_kv.Key.t
| `Value_expected of Mirage_kv.Key.t
]
include Mirage_kv.RO with type error := error
val disconnect : t -> unit Lwt.t
Disconnect from the key-value store. While this might take some time to complete, it can never result in an error.
type key = Mirage_kv.Key.t
The type for keys.
exists t k
is Some `Value
if k
is bound to a value in t
, Some `Dictionary
if k
is a prefix of a valid key in t
and None
if no key with that prefix exists in t
.
exists
answers two questions: does the key exist and is it referring to a value or a dictionary.
An error occurs when the underlying storage layer fails.
get t k
is the value bound to k
in t
.
The result is Error (`Value_expected k)
if k
refers to a dictionary in t
.
val get_partial :
t ->
key ->
offset:Optint.Int63.t ->
length:int ->
(string, error) Stdlib.result Lwt.t
get_partial t k ~offset ~length
is the length
bytes wide value bound at offset
of k
in t
.
If the size of k
is less than offset
, get_partial
returns an empty string. If the size of k
is less than offset
+length
, get_partial
returns a short string. The result is Error (`Value_expected k)
if k
refers to a dictionary in t
.
list t k
is the list of entries and their types in the dictionary referenced by k
in t
. The returned keys are all absolute (i.e. Key.add k entry
).
The result is Error (`Dictionary_expected k)
if k
refers to a value in t
.
last_modified t k
is the last time the value bound to k
in t
has been modified.
When the value bound to k
is a dictionary, the implementation is free to decide how to compute a last modified timestamp, or return Error
(`Value_expected _)
.
digest t k
is the unique digest of the value bound to k
in t
.
When the value bound to k
is a dictionary, the implementation is allowed to return Error (`Value_expected _)
. Otherwise, the digest
is a unique and deterministic digest of its entries.