package irmin
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=088741b619471c8198e74aaf9f4aeb4a9997abec8b9abcbfb3443fd27bfb433f
sha512=bbc03417d6eb87d99bee391c489d23a586b0a260e4c797f5e2465c3ab67cb627a9efa526097c1b89dd3339eafb8bad738c1cf0502e5c70355871ff7dbba324b9
doc/irmin/Irmin/Make_ext/argument-8-Node/index.html
Parameter Make_ext.Node
Node values
type metadata = Metadata.tThe type for node metadata.
type hash = Hash.tThe type for keys.
type step = Path.stepThe type for steps between nodes.
The type for either (node) keys or (contents) keys combined with their metadata.
list t is the contents of t. offset and length are used to paginate results.
caching
cache regulates the caching behaviour regarding the node's internal data which may be lazily loaded from the backend, depending on the node implementation.
cache defaults to true which may greatly reduce the IOs and the runtime but may also increase the memory consumption.
cache = false doesn't replace a call to clear, it only prevents the storing of new data, it doesn't discard the existing one.
seq t is the contents of t. offset and length are used to paginate results.
See caching for an explanation of the cache parameter
val empty : tempty is the empty node.
val length : t -> intlength t is the number of entries in t.
hash_exn t is the hash of t.
Another way of computing it is Hash.Typed(Hash)(Node).hash t which computes the pre-hash of t before hashing it using Hash. hash_exn might be faster because the it may be optimised (e.g. it may use caching).
hash_exn t is hash_exn ~force:true t which is not expected to raise an exception. hash_exn ~force:false t will raise Not_found if the hash requires IOs to be computed.
val clear : t -> unitCleanup internal caches.
find t s is the value associated with s in t.
A node can point to user-defined contents. The edge between the node and the contents is labeled by a step.
See caching for an explanation of the cache parameter
add t s v is the node where find t v is Some s but is similar to t otherwise.
remove t s is the node where find t s is None but is similar to t otherwise.
val default : metadatadefault is the default metadata value.
Proofs
Recursive Nodes
Some Node implementations (like irmin-pack's inodes) can represent a node as a set of nodes. One operation on such "high-level" node corresponds to a sequence of recursive calls to the underlying "lower-level" nodes. Note: theses effects are not in the Lwt monad on purpose (so Tree.hash and Tree.equal are not in the Lwt monad as well).