Make.Context
View over the context store, restricted to types, access and functional manipulation of an existing context.
The tree depth of a fold. See the fold
function for more information.
module type VIEW = sig ... end
module Kind : sig ... end
module type TREE = sig ... end
Tree
provides immutable, in-memory partial mirror of the context, with lazy reads and delayed writes.
include VIEW
with type key = string list
and type value = bytes
with type t = Mavryk_protocol_environment__.Environment_context.Context.t
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.
add t k v
is an Lwt promise that resolves to c
such that:
k
is bound to v
in c
;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.
remove t k v
is an Lwt promise that resolves to c
such that:
k
is unbound in c
;c
is similar to t
otherwise.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
.module Tree :
TREE
with type t := t
and type key := key
and type value := value
and type tree := tree
Tree
provides immutable, in-memory partial mirror of the context, with lazy reads and delayed writes.
val register_resolver :
'a Base58.encoding ->
(t -> string -> 'a list Lwt.t) ->
unit
val get_hash_version : t -> Context_hash.Version.t
Get the hash version used for the context
val set_hash_version :
t ->
Context_hash.Version.t ->
t Error_monad.shell_tzresult Lwt.t
Set the hash version used for the context. It may recalculate the hashes of the whole context, which can be a long process. Returns an Error if the hash version is unsupported.
module type CACHE = sig ... end