Lazy_map.Make
type key = Key.t
type 'a producer = key -> 'a Lwt.t
val origin : 'a t -> Mavryk_tree_encoding.wrapped_tree option
origin map
returns the tree of origin of the map, if it exists.
Note: The sole consumer of this function is expected to be the tree-encoding library.
val string_of_key : key -> string
string_of_key key
turns the given key
into a string.
val pp :
(Stdlib.Format.formatter -> 'a -> unit) ->
Stdlib.Format.formatter ->
'a t ->
unit
pp pp_value
gives you a pretty-printer. This function is a witness of internal mutation.
val to_string : ('a -> string) -> 'a t -> string
to_string show map
generates a string representation of map
by using show
for its values. Like pp
this function is witness of internal mutation.
val create :
?values:'a Map.t ->
?produce_value:'a producer ->
?origin:Mavryk_tree_encoding.wrapped_tree ->
unit ->
'a t
create ?values ?produce_value ?origin num_elements
produces a lazy map with num_elements
entries where each is created using produce_value
. values
may be provided to supply an initial set of entries.
Note: This function is intended to be used produce_value
should only be used by the tree-encoding library. If you want to fill a newly created map with some value, use values
or set
on the empty map.
dup map
duplicates map
.
Note: the produce_value
continuation is shared between the resulting map and map
, meaning that if said continuation carries a state, the two maps will interfere with each others. This is safe when used in conjunction with lib_tree_encoding
, because the continuation is pure in the sense it will always returns the same result when called with the same argument.