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