package tezos-protocol-012-Psithaca
Getters
val mem : t -> key -> bool Tezos_protocol_environment_012_Psithaca.Lwt.t
mem t k
is an Lwt promise that resolves to true
iff k
is bound to a value in t
.
val mem_tree : t -> key -> bool Tezos_protocol_environment_012_Psithaca.Lwt.t
mem_tree t k
is like mem
but for trees.
val get :
t ->
key ->
value Tezos_protocol_environment_012_Psithaca.Error_monad.tzresult
Tezos_protocol_environment_012_Psithaca.Lwt.t
get t k
is an Lwt promise that resolves to Ok v
if k
is bound to the value v
in t
and Storage_ErrorMissing_key
otherwise.
val get_tree :
t ->
key ->
tree Tezos_protocol_environment_012_Psithaca.Error_monad.tzresult
Tezos_protocol_environment_012_Psithaca.Lwt.t
get_tree
is like get
but for trees.
val find :
t ->
key ->
value option Tezos_protocol_environment_012_Psithaca.Lwt.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.
val find_tree :
t ->
key ->
tree option Tezos_protocol_environment_012_Psithaca.Lwt.t
find_tree t k
is like find
but for trees.
val list :
t ->
?offset:int ->
?length:int ->
key ->
(string * tree) list Tezos_protocol_environment_012_Psithaca.Lwt.t
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
val init :
t ->
key ->
value ->
t Tezos_protocol_environment_012_Psithaca.Error_monad.tzresult
Tezos_protocol_environment_012_Psithaca.Lwt.t
init t k v
is an Lwt promise that resolves to Ok c
if:
k
is unbound int
;k
is bound tov
inc
;- and
c
is similar tot
otherwise.
It is Storage_errorExisting_key
if k
is already bound in t
.
val init_tree :
t ->
key ->
tree ->
t Tezos_protocol_environment_012_Psithaca.Error_monad.tzresult
Tezos_protocol_environment_012_Psithaca.Lwt.t
init_tree
is like init
but for trees.
val update :
t ->
key ->
value ->
t Tezos_protocol_environment_012_Psithaca.Error_monad.tzresult
Tezos_protocol_environment_012_Psithaca.Lwt.t
update t k v
is an Lwt promise that resolves to Ok c
if:
k
is bound int
;k
is bound tov
inc
;- and
c
is similar tot
otherwise.
It is Storage_errorMissing_key
if k
is not already bound in t
.
val update_tree :
t ->
key ->
tree ->
t Tezos_protocol_environment_012_Psithaca.Error_monad.tzresult
Tezos_protocol_environment_012_Psithaca.Lwt.t
update_tree
is like update
but for trees.
val add : t -> key -> value -> t Tezos_protocol_environment_012_Psithaca.Lwt.t
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.
val add_tree :
t ->
key ->
tree ->
t Tezos_protocol_environment_012_Psithaca.Lwt.t
add_tree
is like add
but for trees.
val remove : t -> key -> t Tezos_protocol_environment_012_Psithaca.Lwt.t
remove t k v
is an Lwt promise that resolves to c
such that:
k
is unbound inc
;- and
c
is similar tot
otherwise.
val remove_existing :
t ->
key ->
t Tezos_protocol_environment_012_Psithaca.Error_monad.tzresult
Tezos_protocol_environment_012_Psithaca.Lwt.t
remove_existing t k v
is an Lwt promise that resolves to Ok c
if:
k
is bound int
to a value;k
is unbound inc
;- and
c
is similar tot
otherwise.
val remove_existing_tree :
t ->
key ->
t Tezos_protocol_environment_012_Psithaca.Error_monad.tzresult
Tezos_protocol_environment_012_Psithaca.Lwt.t
remove_existing_tree t k v
is an Lwt promise that reolves to Ok c
if:
k
is bound int
to a tree;k
is unbound inc
;- and
c
is similar tot
otherwise.
val add_or_remove :
t ->
key ->
value option ->
t Tezos_protocol_environment_012_Psithaca.Lwt.t
add_or_remove t k v
is:
add t k x
ifv
isSome x
;remove t k
otherwise.
val add_or_remove_tree :
t ->
key ->
tree option ->
t Tezos_protocol_environment_012_Psithaca.Lwt.t
add_or_remove_tree t k v
is:
add_tree t k x
ifv
isSome x
;remove t k
otherwise.
Folds
val fold :
?depth:[ `Eq of int | `Le of int | `Lt of int | `Ge of int | `Gt of int ] ->
t ->
key ->
order:[ `Sorted | `Undefined ] ->
init:'a ->
f:(key -> tree -> 'a -> 'a Tezos_protocol_environment_012_Psithaca.Lwt.t) ->
'a Tezos_protocol_environment_012_Psithaca.Lwt.t
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 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
.