Module Slice.Make

Build simple slices.

Parameters

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

Signature

Slices

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 = [
  1. | `Contents of contents
  2. | `Node of node
  3. | `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.