package octez-l2-libs
Nested_map
is a map where values are indexed by both a primary and secondary key. It allows more flexibility over a map whose keys are tupls of the form `(primary_key, secondary_key)`. In particular, it provides functions to retrieve all the bindings in a map that share the same primary_key.
value
is the type of values that are going to be persisted on disk, indexed by primary and secondary key.
val path : path
Path in the irmin tree.
val mem :
[> `Read ] store ->
primary_key:primary_key ->
secondary_key:secondary_key ->
bool Tezos_base.TzPervasives.tzresult Lwt.t
mem store ~primary_key ~secondary_key
returns whether there is a value for the nested map persisted on store
for the nested map, indexed by primary_key
and then by secondary_key
.
val get :
[> `Read ] store ->
primary_key:primary_key ->
secondary_key:secondary_key ->
value Tezos_base.TzPervasives.tzresult Lwt.t
get store ~primary_key ~secondary_key
retrieves from store
the value of the nested map associated with primary_key
and secondary_key
, if any. If such a value does not exist, it fails with error Store_errors.Cannot_read_key_from_store k
, where k
is the string representation of the primary key.
val find :
[> `Read ] store ->
primary_key:primary_key ->
secondary_key:secondary_key ->
value option Tezos_base.TzPervasives.tzresult Lwt.t
find store ~primary_key ~secondary_key
is the same as get store ~primary_key ~secondary_key
, except that no error is thrown and an optional value is returned instead. The returned value is None
if there is not a value bound to primary_key
and seconary_key
in the store
for the Nested_map
.
val list_secondary_keys_with_values :
[> `Read ] store ->
primary_key:primary_key ->
(secondary_key * value) list Tezos_base.TzPervasives.tzresult Lwt.t
list secondary_keys store ~primary_key
retrieves from store
the list of bindings of the nested map that share the same ~primary_key
. For each of these bindings, both the secondary_key and value are returned.
val list_secondary_keys :
[> `Read ] store ->
primary_key:primary_key ->
secondary_key list Tezos_base.TzPervasives.tzresult Lwt.t
list_secondary_keys store ~primary_key
retrieves from store
the list of secondary_keys for which a value indexed by both primary_key
and secondary key is persisted on disk.
val list_values :
[> `Read ] store ->
primary_key:primary_key ->
value list Tezos_base.TzPervasives.tzresult Lwt.t
list_values store ~primary_key
retrieves from store
the list of values for which a binding with primary key primary_key
and arbitrary secondary key exists.
val add :
rw store ->
primary_key:primary_key ->
secondary_key:secondary_key ->
value ->
unit Tezos_base.TzPervasives.tzresult Lwt.t
add store ~primary_key ~secondary_key value
persists value
to disk. The value is bound to the primary_key
and secondary_key
.