Module Private.Node

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 type S = sig ... end
module Make : functor (K : Type.S) -> functor (P : sig ... end) -> functor (M : Metadata.S) -> S with type hash = K.t and type step = P.step and type metadata = M.t

Make provides a simple node implementation, parameterized by the contents and notes keys K, paths P and metadata M.

module V1 : functor (S : S) -> sig ... end

v1 serialisation

module type STORE = Irmin__S.NODE_STORE

STORE specifies the signature for node stores.

module Store : functor (C : Contents.STORE) -> functor (P : Path.S) -> functor (M : Metadata.S) -> functor (S : sig ... end) -> STORE with type 'a t = 'a C.t * 'a S.t and type key = S.key and type value = S.value and module Path = P and module Metadata = M and type Key.t = S.Key.t and module Val = S.Val

Store creates node stores.

module type GRAPH = Irmin__S.NODE_GRAPH

Graph specifies the signature for node graphs. A node graph is a deterministic DAG, labeled by steps.

module Graph : functor (S : STORE) -> GRAPH with type 'a t = 'a S.t and type contents = S.Contents.key and type metadata = S.Val.metadata and type node = S.key and type path = S.Path.t and type step = S.Path.step