package octez-libs
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=c6df840ebbf115e454db949028c595bec558a59a66cade73b52a6d099d6fa4d4
sha512=d8aee903b9fe130d73176bc8ec38b78c9ff65317da3cb4f3415f09af0c625b4384e7498201fdb61aa39086a7d5d409d0ab3423f9bc3ab989a680cf444a79bc13
doc/octez-libs.lwt-result-stdlib/Tezos_lwt_result_stdlib/Lwtreslib/Bare/Seq/index.html
Module Bare.Seq
Source
Common interface with Stdlib
Note that some functions (namely init
, take
, and drop
) are shadowed with exception-less versions.
Note that once
is not shadowed. Be careful when using once
: the resulting sequence is ephemeral and using in a non-ephemeral way raises an exception. As a safer alternative, you can use Seq_e.of_seq_once
which gives you a result-based (exception-less) ephemeral sequence.
include module type of Seq
with type 'a t = 'a Seq.t
and type 'a node = 'a Seq.node
type !'a t = 'a Seq.t
val is_empty : 'a t -> bool
val length : 'a t -> int
val iter : ('a -> unit) -> 'a t -> unit
val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b t -> 'a
val iteri : (int -> 'a -> unit) -> 'a t -> unit
val fold_lefti : ('b -> int -> 'a -> 'b) -> 'b -> 'a t -> 'b
val for_all : ('a -> bool) -> 'a t -> bool
val exists : ('a -> bool) -> 'a t -> bool
val find : ('a -> bool) -> 'a t -> 'a option
val find_map : ('a -> 'b option) -> 'a t -> 'b option
val empty : 'a t
val return : 'a -> 'a t
val unfold : ('b -> ('a * 'b) option) -> 'b -> 'a t
val repeat : 'a -> 'a t
val forever : (unit -> 'a) -> 'a t
val iterate : ('a -> 'a) -> 'a -> 'a t
val of_dispenser : (unit -> 'a option) -> 'a t
val to_dispenser : 'a t -> unit -> 'a option
val ints : int -> int t
Lwtreslib-specific safety-shadowing
Lwtreslib-specific extensions
Similar to iter
but wraps the iteration in result Lwt.t
. All the steps of the iteration are started concurrently. The promise iter_ep
resolves once all the promises of the traversal resolve. At this point it either:
- is rejected if at least one of the promises is, otherwise
- is fulfilled with
Error _
if at least one of the promises is, otherwise - is fulfilled with
Ok ()
if all the promises are.
val iteri_ep :
(int -> 'a -> (unit, 'trace) result Lwt.t) ->
'a t ->
(unit, 'trace list) result Lwt.t
Similar to iteri
but wraps the iteration in result Lwt.t
. All the steps of the iteration are started concurrently. The promise iteri_ep
resolves once all the promises of the traversal resolve. At this point it either:
- is rejected if at least one of the promises is, otherwise
- is fulfilled with
Error _
if at least one of the promises is, otherwise - is fulfilled with
Ok ()
if all the promises are.
val iter2_ep :
('a -> 'b -> (unit, 'trace) result Lwt.t) ->
'a t ->
'b t ->
(unit, 'trace list) result Lwt.t
Similar to iter2
but wraps the iteration in result Lwt.t
. All the steps of the iteration are started concurrently. The promise iter2_ep f s1 s2
resolves once all the promises of the traversal resolve. At this point it is either:
- rejected if at least one of the promises is,
- fulfilled with
Error _
if at least one of the promises is, - fulfilled with
Ok ()
if all of the promises are.
Note that similarly to Stdlib.Seq.iter2
this function iterates on the common-length prefix of the two sequences. As a result, the iteration can be successful even if the two sequences are of different lengths.
Similar to iter2
but wraps the iteration in Lwt
. All the steps of the iteration are started concurrently. The promise iter2_p f s1 s2
resolves once all the promises of the traversal resolve. At this point it is either:
- rejected if at least one of the promises is,
- fulfilled with
()
if all of the promises are.
Note that similarly to Stdlib.Seq.iter2
this function iterates on the common-length prefix of the two sequences. As a result, the iteration can be successful even if the two sequences are of different lengths.