package tezos-protocol-009-PsFLoren

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

The type for context handler.

type tree

The type for context trees.

type key = string list

The type for context keys.

type value = bytes

The type for context values.

Getters

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

mem t k is an Lwt promise that resolves to true iff k is bound to a value in t.

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

mem_tree t k is like mem but for trees.

val get : t -> key -> (value, Tezos_protocol_environment_009_PsFLoren__Environment.Error_monad.error Tezos_protocol_environment_009_PsFLoren__Environment.Error_monad.trace) result Lwt.t

get t k is an Lwt promise that resolves to Ok v if k is bound to the value v in t and Storage_ErrorMissing_key otherwise.

val get_tree : t -> key -> (tree, Tezos_protocol_environment_009_PsFLoren__Environment.Error_monad.error Tezos_protocol_environment_009_PsFLoren__Environment.Error_monad.trace) result Lwt.t

get_tree is like get but for trees.

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

find t k is an Lwt promise that resolves to Some v if k is bound to the value v in t and None otherwise.

val find_tree : t -> key -> tree option Lwt.t

find_tree t k is like find but for trees.

val list : t -> ?offset:int -> ?length:int -> key -> (string * tree) list Lwt.t

list t key is the list of files and sub-nodes stored under k in t. The result order is not specified but is stable.

offset and length are used for pagination.

Setters

val init : t -> key -> value -> (t, Tezos_protocol_environment_009_PsFLoren__Environment.Error_monad.error Tezos_protocol_environment_009_PsFLoren__Environment.Error_monad.trace) result Lwt.t

init t k v is an Lwt promise that resolves to Ok c if:

  • k is unbound in t;
  • k is bound to v in c;
  • and c is similar to t otherwise.

It is Storage_errorExisting_key if k is already bound in t.

val init_tree : t -> key -> tree -> (t, Tezos_protocol_environment_009_PsFLoren__Environment.Error_monad.error Tezos_protocol_environment_009_PsFLoren__Environment.Error_monad.trace) result Lwt.t

init_tree is like init but for trees.

val update : t -> key -> value -> (t, Tezos_protocol_environment_009_PsFLoren__Environment.Error_monad.error Tezos_protocol_environment_009_PsFLoren__Environment.Error_monad.trace) result Lwt.t

update t k v is an Lwt promise that resolves to Ok c if:

  • k is bound in t;
  • k is bound to v in c;
  • and c is similar to t otherwise.

It is Storage_errorMissing_key if k is not already bound in t.

val update_tree : t -> key -> tree -> (t, Tezos_protocol_environment_009_PsFLoren__Environment.Error_monad.error Tezos_protocol_environment_009_PsFLoren__Environment.Error_monad.trace) result Lwt.t

update_tree is like update but for trees.

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

add t k v is an Lwt promise that resolves to c such that:

  • k is bound to v in c;
  • and c is similar to t otherwise.

If k was already bound in t to a value that is physically equal to v, the result of the function is a promise that resolves to t. Otherwise, the previous binding of k in t disappears.

val add_tree : t -> key -> tree -> t Lwt.t

add_tree is like add but for trees.

val remove : t -> key -> t Lwt.t

remove t k v is an Lwt promise that resolves to c such that:

  • k is unbound in c;
  • and c is similar to t otherwise.
val remove_existing : t -> key -> (t, Tezos_protocol_environment_009_PsFLoren__Environment.Error_monad.error Tezos_protocol_environment_009_PsFLoren__Environment.Error_monad.trace) result Lwt.t

remove_existing t k v is an Lwt promise that resolves to Ok c if:

  • k is bound in t to a value;
  • k is unbound in c;
  • and c is similar to t otherwise.
val remove_existing_tree : t -> key -> (t, Tezos_protocol_environment_009_PsFLoren__Environment.Error_monad.error Tezos_protocol_environment_009_PsFLoren__Environment.Error_monad.trace) result Lwt.t

remove_existing_tree t k v is an Lwt promise that reolves to Ok c if:

  • k is bound in t to a tree;
  • k is unbound in c;
  • and c is similar to t otherwise.
val add_or_remove : t -> key -> value option -> t Lwt.t

add_or_remove t k v is:

  • add t k x if v is Some x;
  • remove t k otherwise.
val add_or_remove_tree : t -> key -> tree option -> t Lwt.t

add_or_remove_tree t k v is:

  • add_tree t k x if v is Some x;
  • remove t k otherwise.

Folds

val fold : ?depth:[ `Eq of int | `Le of int | `Lt of int | `Ge of int | `Gt of int ] -> t -> key -> init:'a -> f:(key -> tree -> 'a -> 'a Lwt.t) -> 'a Lwt.t

fold ?depth t root ~init ~f recursively folds over the trees and values of t. The f callbacks are called with a key relative to root. f is never called with an empty key for values; i.e., folding over a value is a no-op.

Elements are traversed in lexical order of keys.

The depth is 0-indexed. If depth is set (by default it is not), then f is only called when the conditions described by the parameter is true:

  • Eq d folds over nodes and contents of depth exactly d.
  • Lt d folds over nodes and contents of depth strictly less than d.
  • Le d folds over nodes and contents of depth less than or equal to d.
  • Gt d folds over nodes and contents of depth strictly more than d.
  • Ge d folds over nodes and contents of depth more than or equal to d.