package tezos-context
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=296bb5674bc6050afe6330326fbdd0dfc2255d414bfd6b79cc7666ac6b39316d
sha512=c061cd300a9410300851158d77bf8e56ca3c568b0b1161b38305e5b2efdcd9c746d391f832fdb2826f9a1d6babce10a9b764a4b04f5df42699f7314b9863123a
doc/tezos-context.memory/Tezos_context_memory/Context/index.html
Module Tezos_context_memory.Context
Source
Implementation of Tezos context fully in memory.
include Tezos_context_sigs.Context.S
include Tezos_context_sigs.Context.VIEW
with type key = string list
and type value = bytes
The type for context views.
The type for context keys.
The type for context values.
The type for context trees.
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:
k
is bound tov
inc
;- and
c
is similar tot
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 inc
;- and
c
is similar tot
otherwise.
Folding
val fold :
?depth:Tezos_context_sigs.Context.depth ->
t ->
key ->
order:[ `Sorted | `Undefined ] ->
init:'a ->
f:(key -> tree -> 'a -> 'a Lwt.t) ->
'a Lwt.t
fold ?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 exactlyd
.Lt d
folds over nodes and contents of depth strictly less thand
.Le d
folds over nodes and contents of depth less than or equal tod
.Gt d
folds over nodes and contents of depth strictly more thand
.Ge d
folds over nodes and contents 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
.
val hash :
time:Tezos_base.Time.Protocol.t ->
?message:string ->
t ->
Tezos_base__TzPervasives.Context_hash.t
val commit :
time:Tezos_base.Time.Protocol.t ->
?message:string ->
t ->
Tezos_base__TzPervasives.Context_hash.t Lwt.t
Get 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.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.
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.