package irmin

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

Node values

type t

The type for node values.

type metadata

The type for node metadata.

type contents

The type for contents keys.

type node

The type for node keys.

type step

The type for steps between nodes.

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

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

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

create l is a new node.

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

list t is the contents of t.

val empty : t

empty is the empty node.

val is_empty : t -> bool

is_empty t is true iff t is empty.

val find : 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.

val update : t -> step -> value -> t

update 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 Type.t

t is the value type for t.

val metadata_t : metadata Type.t

metadata_t is the value type for metadata.

val contents_t : contents Type.t

contents_t is the value type for contents.

val node_t : node Type.t

node_t is the value type for node.

val step_t : step Type.t

step_t is the value type for step.

val value_t : value Type.t

value_t is the value type for value.