package octez-internal-libs
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=ddfb5076eeb0b32ac21c1eed44e8fc86a6743ef18ab23fff02d36e365bb73d61
sha512=d22a827df5146e0aa274df48bc2150b098177ff7e5eab52c6109e867eb0a1f0ec63e6bfbb0e3645a6c2112de3877c91a17df32ccbff301891ce4ba630c997a65
doc/octez-internal-libs.irmin/Irmin/Node/index.html
Module Irmin.Node
Source
Node
provides functions to describe the graph-like structured values.
The node blocks form a labeled directed acyclic graph, labeled by steps: a list of steps defines a unique path from one node to an other.
Each node can point to user-defined contents values.
module Make
(Hash : Hash.S)
(Path : sig ... end)
(Metadata : Metadata.S) :
S
with type hash = Hash.t
and type metadata = Metadata.t
and type step = Path.step
Make
provides a simple node implementation, parameterized by hash, path and metadata implementations. The contents and node values are addressed directly by their hash.
Generic_key
generalises the concept of "node" to one that supports object keys that are not strictly equal to hashes.
v1 serialisation
Portable form of a node implementation that can be constructed from a concrete representation and used in computing hashes. Conceptually, a Node.Portable.t
is a Node.t
in which all internal keys have been replaced with the hashes of the values they point to.
module Store
(C : Contents.Store)
(S : Content_addressable.S with type key = C.key)
(H : Hash.S with type t = S.key)
(V : S with type t = S.value and type hash = S.key)
(M : Metadata.S with type t = V.metadata)
(P : Path.S with type step = V.step) :
Store
with type 'a t = 'a C.t * 'a S.t
and type key = S.key
and type value = S.value
and type hash = H.t
and module Path = P
and module Metadata = M
and module Val = V
Store
creates node stores.
Graph
specifies the signature for node graphs. A node graph is a deterministic DAG, labeled by steps.
module Graph
(N : Store) :
Graph
with type 'a t = 'a N.t
and type contents_key = N.Contents.key
and type node_key = N.key
and type metadata = N.Metadata.t
and type step = N.Path.step
and type path = N.Path.t