package irmin
- Overview
- No Docs
You can search for identifiers within the package.
in-package search v0.2.0
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=8e073abe1b5ffb5b6d58c32606c9d7dabc32c53501756be80a92ed4777ad51a0
sha512=70769a8d36520626fecd6f68e5f3abe6a0d67a65af915312206cc3f4da230df48512faee178aa6e899d3fb640b9340f6c92486185be5432a1a1a161c70386c99
doc/irmin.mem/Irmin_mem/Make/Backend/Commit/index.html
Module Backend.Commit
Source
A commit store.
Commit Store
include Irmin.Indexable.S with type hash = Hash.t with type key = commit_key
Read-only stores
Read-only stores are store where it is only possible to read existing values.
The type for stores. The 'a
phantom type carries information about the store mutability.
The type for keys.
The type for raw values.
mem t k
is true iff k
is present in t
.
find t k
is Some v
if k
is associated to v
in t
and None
is k
is not present in t
.
close t
frees up all the resources associated with t
. Any operations run on a closed handle will raise Closed
.
Write the contents of a value to the store, and obtain its key.
Same as add
but allows specifying the value's hash directly. The backend might choose to discard that hash and/or can be corrupt if the hash is not consistent.
Indexing maps the hash of a value to a corresponding key of that value in the store. For stores that are addressed by hashes directly, this is typically fun _t h -> Lwt.return (Key.of_hash h)
; for stores with more complex addressing schemes, index
may attempt a lookup operation in the store.
In general, indexing is best-effort and reveals no information about the membership of the value in the store. In particular:
index t hash = Some key
doesn't guaranteemem t key
: the value with hashhash
may still be absent from the store;
index t hash = None
doesn't guarantee that there is nokey
such thatmem t key
andKey.to_hash key = hash
: the value may still be present in the store under a key that is not indexed.
val batch :
Irmin.Perms.read t ->
([ Irmin.Perms.read | Irmin.Perms.write ] t -> 'a Lwt.t) ->
'a Lwt.t
batch t f
applies the writes in f
in a separate batch. The exact guarantees depend on the implementation.
Commit info.
Node
is the underlying node store.
merge
is the 3-way merge function for commit keys.