Non-deterministic interleave of both streams.
Non-deterministic interleave of both streams. Emits values whenever either is defined. Note this terminates after BOTH sides terminate
Non-deterministic interleave of both streams.
Non-deterministic interleave of both streams. Emits values whenever either is defined. Note this terminates after BOTH sides terminate
Like tee, but we allow the Wye to read non-deterministically
from both sides at once.
Like tee, but we allow the Wye to read non-deterministically
from both sides at once.
If y is in the state of awaiting Both, this implementation
will continue feeding y from either left or right side,
until either it halts or _both_ sides halt.
If y is in the state of awaiting L, and the left
input has halted, we halt. Likewise for the right side.
For as long as y permits it, this implementation will _always_
feed it any leading Emit elements from either side before issuing
new F requests. More sophisticated chunking and fairness
policies do not belong here, but should be built into the Wye
and/or its inputs.
The strategy passed in must be stack-safe, otherwise this implementation
will throw SOE. Preferably use one of the Strategys.Executor(es) based strategies
Non-deterministic version of zip.
Non-deterministic version of zip. Note this terminates whenever one of streams terminate
Non-deterministic version of zipWith.
Non-deterministic version of zipWith. Note this terminates whenever one of streams terminate