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=95a87ecc3dc2b35eee56cb351c32d2bd78c8967180a4b028324d815bfce1a6ff
sha512=20faba561c80c5389e91993d7e2cc0cedd1330cf098b68f0456f5068cde369a5589a05cd2aeb0a701d65a7d1e1e6f4045ccfbf60349cbea2bfd02981d7bb244c
doc/irmin.mem/Irmin_mem/Make/Backend/Node/Val/index.html
Module Node.Val
Source
Val
provides base functions for node values.
Node values
The type for node metadata.
The type for contents keys.
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.
of_seq s
is the node n
such that seq n = s
.
seq t
is the contents of t
. offset
and length
are used to paginate results.
See caching for an explanation of the cache
parameter
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.
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.
Metadata functions.
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.
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).
with_handler f
replace the current effect handler h
by f h
. f h
will be called for all the recursive read effects that are required by recursive operations on nodes. .
Reveal the shallow internal structure of the node.
Only hashes and not keys are revealed in the `Inode
case, this is because these inodes might not be keyed yet.
merging
val merge :
contents:contents_key option Irmin.Merge.t ->
node:node_key option Irmin.Merge.t ->
t Irmin.Merge.t
merge
is the merge function for nodes.