Tezos_context_memory.ContextSourceImplementation of Tezos context fully in memory.
include Tezos_context_sigs.Context.Sinclude Tezos_context_sigs.Context.VIEW
with type key = string list
and type value = bytesThe type for context views.
The type for context keys.
The type for context values.
The type for context trees.
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.val fold :
?depth:Tezos_context_sigs.Context.depth ->
t ->
key ->
order:[ `Sorted | `Undefined ] ->
init:'a ->
f:(key -> 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 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.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.
val hash :
time:Tezos_base.Time.Protocol.t ->
?message:string ->
t ->
Tezos_base__TzPervasives.Context_hash.tval commit :
time:Tezos_base.Time.Protocol.t ->
?message:string ->
t ->
Tezos_base__TzPervasives.Context_hash.t Lwt.tGet the hash version used for the context
val set_hash_version :
t ->
Tezos_base__TzPervasives.Context_hash.Version.t ->
(t, Tezos_error_monad.TzCore.error list) result Lwt.tSet 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.
Exception raised by find_tree and add_tree when applied to shallow trees. It is exposed so that it can be catched by the proxy where such operations on shallow trees are expected.