Module S.Slice

A slice abstraction.


type t

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 = [
  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.