package irmin-pack

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type
include Irmin.Private.Node.S with type hash = hash with type metadata = Node.metadata with type step = Node.step

Node values

type t

The type for node values.

type metadata = Node.metadata

The type for node metadata.

type hash = hash

The type for keys.

type step = Node.step

The type for steps between nodes.

type value = [
  1. | `Node of hash
  2. | `Contents of hash * metadata
]

The type for either (node) keys or (contents) keys combined with their metadata.

val of_list : (step * value) list -> t

of_list l is the node n such that list n = l.

val list : ?offset:int -> ?length:int -> ?cache:bool -> t -> (step * value) list

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.

val of_seq : (unit -> (step * value) Seq.node) -> t

of_seq s is the node n such that seq n = s.

val seq : ?offset:int -> ?length:int -> ?cache:bool -> t -> unit -> (step * value) Seq.node

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 : t

empty is the empty node.

val is_empty : t -> bool

is_empty t is true iff t is empty.

val clear : t -> unit

Cleanup internal caches.

val find : ?cache:bool -> t -> step -> value option

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

val add : t -> step -> value -> t

add t s v is the node where find t v is Some s but is similar to t otherwise.

val remove : t -> step -> t

remove t s is the node where find t s is None but is similar to t otherwise.

Value types

val t : t Irmin.Type.t

t is the value type for t.

val default : metadata

default is the default metadata value.

val metadata_t : metadata Irmin.Type.t

metadata_t is the value type for metadata.

val hash_t : hash Irmin.Type.t

hash_t is the value type for hash.

val step_t : step Irmin.Type.t

step_t is the value type for step.

val value_t : value Irmin.Type.t

value_t is the value type for value.

val pred : t -> [ `Node of hash | `Inode of hash | `Contents of hash ] list
val of_raw : (hash -> Raw.t option) -> Raw.t -> t
val to_raw : t -> Raw.t
val save : add:(hash -> Raw.t -> unit) -> mem:(hash -> bool) -> t -> unit
val hash : t -> hash
val stable : t -> bool
val length : t -> int
val index : depth:int -> step -> int
val integrity_check : t -> bool

Checks the integrity of an inode.

module Concrete : sig ... end
val to_concrete : t -> Concrete.t

to_concrete t is the concrete inode tree equivalent to t.

val of_concrete : Concrete.t -> (t, Concrete.error) result

of_concrete c is Ok t iff c and t are equivalent.

The result is Error e when a subtree tree of c has an integrity error.

OCaml

Innovation. Community. Security.