final case class IAnd[-I, +LO, +RO, +E](left: Stage[I, LO, E], right: Stage[I, RO, E]) extends BinaryOperator[Stage[I, LO, E], Stage[I, RO, E], I, (LO, RO), E]
An ''independent'' binary operator that applies two stages to the same input and combines their outputs into a tuple.
Both left and right are always applied — unlike And, which skips right if left produces no output.
If both stages yield h8io.stages.Yield.Some, the result is h8io.stages.Yield.Some``((leftOut, rightOut), mergedStatus, ...).
If either stage yields h8io.stages.Yield.None, the result is h8io.stages.Yield.None``(mergedStatus, ...).
Statuses from both stages are merged with combine (i.e., leftStatus.combine(rightStatus)). The evolution pairs each branch's continuations symmetrically.
Returns this stage's Evolution without consuming an input.
Returns this stage's Evolution without consuming an input.
Called instead of apply whenever the stage takes part in a run but has nothing to process: the upstream yielded no output, or a binary operator excluded this branch. The evolution must be the one the stage would have returned had it run. Like apply, skip() may perform side effects — a decorator, for instance, may advance or release the inner stage it owns.
Composes this stage with that, feeding this stage's output into it. See the ''Composition'' section above for what happens when there is no output to feed.
Composes this stage with that, feeding this stage's output into it. See the ''Composition'' section above for what happens when there is no output to feed.