package octez-libs
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=ddfb5076eeb0b32ac21c1eed44e8fc86a6743ef18ab23fff02d36e365bb73d61
sha512=d22a827df5146e0aa274df48bc2150b098177ff7e5eab52c6109e867eb0a1f0ec63e6bfbb0e3645a6c2112de3877c91a17df32ccbff301891ce4ba630c997a65
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.