Defines termination cause for the process.
Defines termination cause for the process.
Cause is always wrapped in Halt
and controls process flow.
An effectful channel, to which we can send values and get back responses.
An effectful channel, to which we can send values and get back responses. Modeled as a source of effectful functions.
An effectful stream of O
values.
An effectful stream of O
values. In between emitting values
a Process
may request evaluation of F
effects.
A Process[Nothing,A]
is a pure Process
with no effects.
A Process[Task,A]
may have Task
effects. A Process
halts due to some Cause
, generally End
(indicating normal
termination) or Error(t)
for some t: Throwable
indicating
abnormal termination due to some uncaught error.
A single input stream transducer.
A single input stream transducer. Accepts input of type I
,
and emits values of type O
.
An effectful sink, to which we can send values.
An effectful sink, to which we can send values. Modeled as a source of effectful functions.
A stream transducer that can read from one of two inputs,
the 'left' (of type I
) or the 'right' (of type I2
).
A stream transducer that can read from one of two inputs,
the 'left' (of type I
) or the 'right' (of type I2
).
Process1[I,O] <: Tee[I,I2,O]
.
This class provides infix syntax specific to Tee
.
This class provides infix syntax specific to Tee
. We put these here
rather than trying to cram them into Process
itself using implicit
equality witnesses. This doesn't work out so well due to variance
issues.
A Tee
that writes values of type W
.
A Writer[F,W,O]
is a Process[F, W \/ O]
.
A Writer[F,W,O]
is a Process[F, W \/ O]
. See
WriterSyntax
for convenience functions
for working with either the written values (the W
)
or the output values (the O
).
This is useful for logging or other situations where we
want to emit some values 'on the side' while doing something
else with the main output of a Process
.
A Process1
that writes values of type W
.
Infix syntax for working with Writer[F,W,O]
.
Infix syntax for working with Writer[F,W,O]
. We call
the W
parameter the 'write' side of the Writer
and
O
the 'output' side. Many method in this class end
with either W
or O
, depending on what side they
operate on.
A stream transducer that can read from one of two inputs, non-deterministically.
This class provides infix syntax specific to Wye
.
This class provides infix syntax specific to Wye
. We put these here
rather than trying to cram them into Process
itself using implicit
equality witnesses. This doesn't work out so well due to variance
issues.
A Wye
that writes values of type W
.
Scheduler used for timing processes.
Scheduler used for timing processes. This thread pool shall not be used for general purpose Process or Task execution