StepLeg

fs2.Stream.StepLeg
final class StepLeg[+F[_], +O](val head: Chunk[O], val scopeId: Token, val next: Pull[F, O, Unit])

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.

Attributes

Source
Stream.scala
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
StepLeg[F, O]

Members list

Value members

Concrete methods

def setHead[O2 >: O](nextHead: Chunk[O2]): StepLeg[F, O2]

Replaces head of this leg.

Replaces head of this leg. Useful when the head was not fully consumed.

Attributes

Source
Stream.scala
def stepLeg: Pull[F, Nothing, Option[StepLeg[F, O]]]

Provides an uncons-like operation on this leg of the stream, dropping current head

Provides an uncons-like operation on this leg of the stream, dropping current head

Attributes

Source
Stream.scala
def stream: Stream[F, O]

Converts this leg back to regular 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.

Note that resulting stream won't contain the head of this leg.

Attributes

Source
Stream.scala

Concrete fields

val head: Chunk[O]

Attributes

Source
Stream.scala