An in-memory store with atomic-write guarantees.
include Irmin.ATOMIC_WRITE_STORE with type key = K.t and type value = V.t
Atomic-write stores are stores where it is possible to read, update and remove elements, with atomically guarantees.
type key = K.t
The type for keys.
type value = V.t
The type for raw values.
find t k is
Some v if
k is associated to
k is not present in
set t k v replaces the contents of
k is not already defined in
t, create a fresh binding. Raise
k is the empty path.
test_and_set t key ~test ~set sets
set only if the current value of
test and in that case returns
true. If the current value of
key is different, it returns
None means that the value does not have to exist or is removed.
Note: The operation is guaranteed to be atomic.
val watch : t -> ?init:(key * value) list -> (key -> value Irmin.Diff.t -> unit Lwt.t) -> watch Lwt.t
watch_key t k ?init f adds
f to the list of
t's watch handlers for the key
k and returns the watch handler to be used with
init is the optional initial value of the key.
close t frees up all the resources associated with
t. Any operations run on a closed handle will raise