Stream.Make
SourceConstructs a stream for the provided concurrency monad.
val fold :
f:('a -> 'state -> 'state) ->
('a, 'err) t ->
'state ->
('state, 'err) result Fiber.t
fold ~f stream acc
consumes the remainder elements e1
, ..., eN
of stream
and returns Ok (acc |> f e1 |> ... |> f eN)
if no error occurred
val fold_s :
f:('a -> 'state -> ('state, 'err) result Fiber.t) ->
('a, 'clog) t ->
'state ->
('state, [> `Congested of 'clog ] as 'err) result Fiber.t
fold_s ~f stream acc
consumes the remainder of stream
, passing each element in order to f
along with the latest accumulation starting at acc
, and returning the final accumulation if successful. An error result may be due to either the stream provider or the callback, as distinguished with the `Congested
constructor.
val iter_s :
f:('a -> (unit, 'err) result Fiber.t) ->
('a, 'clog) t ->
(unit, [> `Congested of 'clog ] as 'err) result Fiber.t
iter_s ~f stream
consumes the remainder of stream
, passing each element in order to f
. An error result may be due to either the steram provider or the callback, as distinguished with the `Congested
constructor.
to_rev_list stream
consumes the remainder of stream
, returning a list of its element in reverse order of production.
to_list stream
consumes the remainder of stream
, returning a list of its element in order of production.
of_list xs
is a non-failing finite stream (re)producing the elements xs
in order of occurrence.