package octez-proto-libs
- 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=dbc3b675aee59c2c574e5d0a771193a2ecfca31e7a5bc5aed66598080596ce1c
sha512=b97ed762b9d24744305c358af0d20f394376b64bfdd758dd4a81775326caf445caa57c4f6445da3dd6468ff492de18e4c14af6f374dfcbb7e4d64b7b720e5e2a
doc/octez-proto-libs.protocol-environment/Tezos_protocol_environment/V3/Make/Context/Tree/index.html
Module Context.TreeSource
Tree provides immutable, in-memory partial mirror of the context, with lazy reads and delayed writes.
Trees are immutable and non-persistent (they disappear if the host crash), held in memory for efficiency, where reads are done lazily and writes are done only when needed, e.g. on Context.commit. If a key is modified twice, only the last value will be written to disk on commit.
include VIEW
with type t := tree
and type tree := tree
with type key := key
with type value := value
Getters
mem t k is an Lwt promise that resolves to true iff k is bound to a value in 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.
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
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.
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:depth ->
tree ->
key ->
init:'a ->
f:(key -> tree -> 'a -> 'a Lwt.t) ->
'a Lwt.tfold ?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 dfolds over nodes and contents of depth exactlyd.Lt dfolds over nodes and contents of depth strictly less thand.Le dfolds over nodes and contents of depth less than or equal tod.Gt dfolds over nodes and contents of depth strictly more thand.Ge dfolds over nodes and contents of depth more than or equal tod.
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 [].
of_value _ v is an Lwt promise that resolves to the leaf tree v. Is is equivalent to add (empty _) [] v.
hash t is t's Merkle hash.