package octez-proto-libs
Install
    
    dune-project
 Dependency
Authors
Maintainers
Sources
sha256=dbc3b675aee59c2c574e5d0a771193a2ecfca31e7a5bc5aed66598080596ce1c
    
    
  sha512=b97ed762b9d24744305c358af0d20f394376b64bfdd758dd4a81775326caf445caa57c4f6445da3dd6468ff492de18e4c14af6f374dfcbb7e4d64b7b720e5e2a
    
    
  doc/octez-proto-libs.protocol-environment/Tezos_protocol_environment/V4/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 to- vin- c;
- 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 in- c;
- and cis similar tototherwise.
Folding
val fold : 
  ?depth:depth ->
  tree ->
  key ->
  order:[ `Sorted | `Undefined ] ->
  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 exactly- d.
- Lt dfolds over nodes and contents of depth strictly less than- d.
- Le dfolds over nodes and contents of depth less than or equal to- d.
- Gt dfolds over nodes and contents of depth strictly more than- d.
- Ge dfolds over nodes and contents of depth more than or equal to- d.
If order is `Sorted (the default), the elements are traversed in lexicographic order of their keys. For large nodes, these two modes are memory-consuming, use `Undefined for a more memory efficient fold.
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.