Private branch store.
Atomic write stores
Atomic-write stores are stores where it is possible to read, update and remove elements, with atomically guarantees.
type key = branch
The type for keys.
type value = Hash.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
module Key : sig ... end
Base functions on keys.
module Val : Irmin.Hash.S with type t = value
Base functions on values.