package tezos-lwt-result-stdlib
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=296bb5674bc6050afe6330326fbdd0dfc2255d414bfd6b79cc7666ac6b39316d
sha512=c061cd300a9410300851158d77bf8e56ca3c568b0b1161b38305e5b2efdcd9c746d391f832fdb2826f9a1d6babce10a9b764a4b04f5df42699f7314b9863123a
doc/traced_structs/Traced_structs/Hashtbl/Make/Make_es/index.html
Module Make.Make_esSource
Parameters
Signature
include Bare_functor_outputs.Hashtbl.S_ES with type key = H.t
val create : int -> ('a, 'trace) tval clear : ('a, 'trace) t -> unitclear tbl cancels and removes all the promises in tbl.
val reset : ('a, 'trace) t -> unitreset tbl cancels and removes all the promises in tbl, and resizes tbl to its initial size.
val find_or_make :
('a, 'trace) t ->
key ->
(unit -> ('a, 'trace) Stdlib.result Lwt.t) ->
('a, 'trace) Stdlib.result Lwt.tfind_or_make tbl k make behaves differently depending on k being bound in tbl:
- if
kis bound intblthenfind_or_make tbl k makereturns the promisepthatkis bound to. Thispmight be already fulfilled withOk _or it might be pending. Thispcannot be already fulfilled withError _or already rejected. This is becauseError/rejected promises are removed from the table automatically. Note however that if thispis pending,pmight become fulfilled withError _or become rejected. - if
kis not bound intblthenmake ()is called and the returned promisepis bound tokintbl. Thenpis returned. Whenpis resolved, it may be removed automatically fromtblas described above.
remove tbl k cancels the promise bound to k in tbl and removes it. If k is not bound in tbl it does nothing.
val iter_with_waiting_es :
(key -> 'a -> (unit, 'trace) Stdlib.result Lwt.t) ->
('a, 'trace) t ->
(unit, 'trace) Stdlib.result Lwt.titer_with_waiting_es f tbl iterates f over the bindings in tbl.
Specifically, for each binding (k, p) it waits for p to be fulfilled with Ok v and calls f k v. If p fulfills with Error _ or is rejected, then no call to f is made for this binding. Note however that an Error/rejection in one promise returned by f interrupts the iteration.
It processes bindings one after the other: it waits for both the bound promise to resolve and then the call promise to resolve before continuing to the next binding.
val fold_with_waiting_es :
(key -> 'a -> 'b -> ('b, 'trace) Stdlib.result Lwt.t) ->
('a, 'trace) t ->
'b ->
('b, 'trace) Stdlib.result Lwt.tfold_with_waiting_es f tbl init folds init with f over the bindings in tbl.
Specifically, for each binding (k, p) it waits for p to be fulfilled with Ok v and determines the next accumulator by calling f k v acc. If p fulfills with Error _ or is rejected, then no call is made for this binding.
It processes bindings one after the other.
val fold_promises :
(key -> ('a, 'trace) Stdlib.result Lwt.t -> 'b -> 'b) ->
('a, 'trace) t ->
'b ->
'bfold_promises f tbl init folds over the table, passing the raw promises to f. This means that f can observe Error/rejections.
This can be used to, e.g., count the number of resolved/unresolved promises.
fold_resolved f tbl init folds over the already resolved promises of tbl. More specifically, it folds over the v for all the promises fulfilled with Ok v that are bound in tbl.
val length : ('a, 'trace) t -> intval stats : ('a, 'trace) t -> Stdlib.Hashtbl.statisticsval iter_with_waiting_ep :
(key -> 'a -> (unit, 'error Monad.trace) Stdlib.result Lwt.t) ->
('a, 'error Monad.trace) t ->
(unit, 'error Monad.trace) Stdlib.result Lwt.t