StepLeg
When merging multiple streams, this represents step of one leg.
It is common to uncons
, however unlike uncons
, it keeps track
of stream scope independently of the main scope of the stream.
This assures, that after each next stepLeg
each Stream leg
keeps its scope
when interpreting.
Usual scenarios is to first invoke stream.pull.stepLeg
and then consume whatever is
available in leg.head
. If the next step is required leg.stepLeg
will yield next Leg
.
Once the stream will stop to be interleaved (merged), then stream
allows to return to normal stream
invocation.
Value members
Concrete methods
Replaces head of this leg. Useful when the head was not fully consumed.
Replaces head of this leg. Useful when the head was not fully consumed.
Provides an uncons
-like operation on this leg of the stream.
Provides an uncons
-like operation on this leg of the stream.
Converts this leg back to regular stream. Scope is updated to the scope associated with this leg. Note that when this is invoked, no more interleaving legs are allowed, and this must be very last leg remaining.
Converts this leg back to regular stream. Scope is updated to the scope associated with this leg. Note that when this is invoked, no more interleaving legs are allowed, and this must be very last leg remaining.
Note that resulting stream won't contain the head
of this leg.