package irmin-pack
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=92a9de7a0a2a35c2feba0c35a806b1f0df24c1c0d15164eebf3f919296d26715
sha512=0203ec5117a851ad5afeb2f9091659b4e142e231b6b945caab93f4d7beb23397c8ac43f7056e91d18f4bff0be1062f6ae966d221f877c229328c0cbbf29fd9f0
doc/irmin-pack.unix/Irmin_pack_unix/Inode/Make_persistent/argument-2-Node/index.html
Parameter Make_persistent.Node
Node values
val t : t Irmin.Type.tval metadata_t : metadata Irmin.Type.ttype contents_key = H.t Pack_key.tThe type for contents keys.
val contents_key_t : contents_key Irmin.Type.ttype node_key = H.t Pack_key.tThe type for node keys.
val node_key_t : node_key Irmin.Type.tval step_t : step Irmin.Type.tThe type for either (node) keys or (contents) keys combined with their metadata.
val value_t : value Irmin.Type.ttype hash = H.tThe type of hashes of values.
val hash_t : hash Irmin.Type.tlist t is the contents of t. offset and length are used to paginate results.
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 : unit -> 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.
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.
module Metadata : Irmin.Metadata.S with type t = metadataMetadata 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).
val with_handler : (read_effect -> read_effect) -> t -> twith_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.tmerge is the merge function for nodes.