package datakit

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

Private content store.

include Irmin.AO with type value = contents with type key = Contents.Hash.t

Append-only stores

Append-only stores are read-only store where it is also possible to add values. Keys are derived from the values raw contents and hence are deterministic.

include Irmin.RO with type value = contents with type key = Contents.Hash.t

Read-only stores

type t

The type for read-only backend stores.

type key = Contents.Hash.t

The type for keys.

type value = contents

The type for raw values.

val mem : t -> key -> bool Lwt.t

mem t k is true iff k is present in t.

val find : t -> key -> value option Lwt.t

find t k is Some v if k is associated to v in t and None is k is not present in t.

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

Write the contents of a value to the store. It's the responsibility of the append-only store to generate a consistent key.

val merge : t -> key option Irmin.Merge.t

merge t lifts the merge functions defined on contents values to contents key. The merge function will: (i) read the values associated with the given keys, (ii) use the merge function defined on values and (iii) write the resulting values into the store to get the resulting key. See Contents.S.merge.

If any of these operations fail, return `Conflict.

module Key : Irmin.Hash.S with type t = key

Key provides base functions for user-defined contents keys.

module Val : Irmin.Contents.S with type t = value

Val provides base functions for user-defined contents values.