Irmin, a distributed database that follows the same design principles as Git
Module Irmin . Backend . Slice . Make


module C : Contents.Store
module N : Node.Store
module H : Commit.Store



type t

The type for slices.

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

The type for exported contents.

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

The type for exported nodes.

val node_t : node Type.t
type commit = H.hash * H.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.