package tezos-context
- Overview
- No Docs
You can search for identifiers within the package.
in-package search v0.2.0
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=ad9e08819871c75ba6f4530b125f7d157799398e4d77a1e6bfea9d91ff37ff55
sha512=c5dc4d40cc09bc6980fbbdb5c2e105bf4252cf9cfcb2b49660b0ebe4dc789f6709ec3b3bf2f87d81580d3eed9521eeb1c960f24d9b14eb0285aaba1f84d10a9b
doc/tezos-context.helpers/Tezos_context_helpers/Context/Make_tree/index.html
Module Context.Make_treeSource
Parameters
module Conf : Tezos_context_encoding.Context.ConfSignature
include Tezos_context_sigs.Context.TREE
with type t := DB.t
and type key := DB.path
and type value := DB.contents
and type tree := DB.tree
include Tezos_context_sigs.Context.VIEW
with type t := DB.tree
and type tree := DB.tree
with type key := DB.path
with type value := DB.contents
Getters
mem t k is an Lwt promise that resolves to true iff k is bound to a value in t.
val find : DB.tree -> DB.path -> DB.contents option Lwt.tfind t k is an Lwt promise that resolves to Some v if k is bound to the value v in t and None otherwise.
find_tree t k is like find but for trees.
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.
length t key is an Lwt promise that resolves to the number of files and sub-nodes stored under k in t.
It is equivalent to let+ l = list t k in List.length l but has a constant-time complexity.
Setters
add t k v is an Lwt promise that resolves to c such that:
kis bound tovinc;- and
cis similar tototherwise.
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.
add_tree is like add but for trees.
remove t k v is an Lwt promise that resolves to c such that:
kis unbound inc;- and
cis similar tototherwise.
Folding
val fold :
?depth:Tezos_context_sigs.Context.depth ->
DB.tree ->
DB.path ->
order:[ `Sorted | `Undefined ] ->
init:'a ->
f:(DB.path -> DB.tree -> 'a -> 'a Lwt.t) ->
'a Lwt.tfold ?depth t root ~order ~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.
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 dfolds over nodes and values of depth exactlyd.Lt dfolds over nodes and values of depth strictly less thand.Le dfolds over nodes and values of depth less than or equal tod.Gt dfolds over nodes and values of depth strictly more thand.Ge dfolds over nodes and values of depth more than or equal tod.
If order is `Sorted (the default), the elements are traversed in lexicographic order of their keys. For large nodes, it is memory-consuming, use `Undefined for a more memory efficient fold.
Configuration
config t is t's hash configuration.
kind t is t's kind. It's either a tree node or a leaf value.
to_value t is an Lwt promise that resolves to Some v if t is a leaf tree and None otherwise. It is equivalent to find t [].
equal x y is true iff x and y have the same Merkle hash.
Caches
val clear : ?depth:int -> DB.tree -> unitclear ?depth t clears all caches in the tree t for subtrees with a depth higher than depth. If depth is not set, all of the subtrees are cleared.
Exception raised by find_tree and add_tree when applied to shallow trees. It is exposed for so that the memory context can in turn raise it.