Irmin, a distributed database that follows the same design principles as Git


type t = slice

The type for slices.

val t : t Type.t
type contents = Contents.hash * Contents.value

The type for exported contents.

val contents_t : contents Type.t
type node = Node.hash * Node.value

The type for exported nodes.

val node_t : node Type.t
type commit = Commit.hash * Commit.value

The type for exported commits.

val commit_t : commit Type.t
type value = [
| `Contents of contents
| `Node of node
| `Commit of commit

The type for exported values.

val value_t : value Type.t
val empty : unit -> t Lwt.t

Create a new empty slice.

val add : t -> value -> unit Lwt.t

add t v adds v to t.

val iter : t -> ( value -> unit Lwt.t ) -> unit Lwt.t

iter t f calls f on all values of t.