A Take[E, A]
represents a single take
from a queue modeling a stream of
values.
A Take[E, A]
represents a single take
from a queue modeling a stream of
values. A Take
may be a failure cause Cause[E]
, an element value A
or an end-of-stream marker.
A Sink[E, A0, A, B]
consumes values of type A
, ultimately producing
either an error of type E
, or a value of type B
together with a remainder
of type A0
.
A Sink[E, A0, A, B]
consumes values of type A
, ultimately producing
either an error of type E
, or a value of type B
together with a remainder
of type A0
.
Sinks form monads and combine in the usual ways.
A Stream[E, A]
represents an effectful stream that can produce values of
type A
, or potentially fail with a value of type E
.
A Stream[E, A]
represents an effectful stream that can produce values of
type A
, or potentially fail with a value of type E
.
Streams have a very similar API to Scala collections, making them immediately familiar to most developers. Unlike Scala collections, streams can be used on effectful streams of data, such as HTTP connections, files, and so forth.
Streams do not leak resources. This guarantee holds in the presence of early termination (not all of a stream is consumed), failure, or even interruption.
Thanks to only first-order types, appropriate variance annotations, and specialized effect type (ZIO), streams feature extremely good type inference and should almost never require specification of any type parameters.
process
is a low-level consumption method, usually used for creating combinators
and constructors. For most usage, ZStream#fold, ZStream#foreach or ZStream#run
should be preferred.
The contract for the returned Pull
is as follows:
- It must not be evaluted concurrently from multiple fibers - it is (usually)
not thread-safe;
- If an evaluation of the Pull
is interrupted, it is not safe to
evaluate it again - it is (usually) not interruption-safe;
- Once the Pull
has failed with a None
, it is not safe
to evaluate it again.
The managed Pull
can be used to read from the stream until it is empty
(or possibly forever, if the stream is infinite). The provided Pull
is valid only inside the scope of the managed resource.
A ZStreamChunk[R, E, A]
represents an effectful stream that can produce values of
type A
, or potentially fail with a value of type E
.
A ZStreamChunk[R, E, A]
represents an effectful stream that can produce values of
type A
, or potentially fail with a value of type E
.
ZStreamChunk
differs from ZStream
in that elements in the stream are processed
in batches, which is orders of magnitude more efficient than dealing with each
element individually.
ZStreamChunk
is particularly suited for situations where you are dealing with values
of primitive types, e.g. those coming off a java.io.InputStream
This object was generated by sbt-buildinfo.