InvariantOps

final class InvariantOps[F <: ([_$136] =>> Any), O] extends AnyVal
Provides syntax for streams that are invariant in F and O.
class AnyVal
trait Matchable
class Any

Value members

Methods

def covary[F2 >: ([x] =>> F[x]) <: ([x] =>> Any)]: Stream[F2, O]
Lifts this stream to the specified effect type.
Example
{{{
scala> import cats.effect.IO
scala> Stream(1, 2, 3).covary[IO]
res0: Stream[IO,Int] = Stream(..)
}}}
def observe(p: (F, O) => Unit)(F: Concurrent[F]): Stream[F, O]
Synchronously sends values through p.
If p fails, then resulting stream will fail. If p halts the evaluation will halt too.
Note that observe will only output full chunks of O that are known to be successfully processed
by p. So if p terminates/fails in the middle of chunk processing, the chunk will not be available
in resulting stream.
Note that if your pipe can be represented by an O => F[Unit], evalTap will provide much greater performance.
Example
{{{
scala> import cats.effect.{ContextShift, IO}
scala> implicit val cs: ContextShift[IO] = IO.contextShift(scala.concurrent.ExecutionContext.Implicits.global)
scala> Stream(1, 2, 3).covary[IO] .observe(.showLinesStdOut).map( + 1).compile.toVector.unsafeRunSync()
res0: Vector[Int] = Vector(2, 3, 4)
}}}
def observeAsync(maxQueued: Int)(p: (F, O) => Unit)(F: Concurrent[F]): Stream[F, O]
Send chunks through p, allowing up to maxQueued pending chunks before blocking s.
def observeEither[L, R](left: (F, L) => Unit, right: (F, R) => Unit)(F: Concurrent[F], ev: O <:< Either[L, R]): Stream[F, Either[L, R]]
Observes this stream of Either[L, R] values with two pipes, one that
observes left values and another that observes right values.
If either of left or right fails, then resulting stream will fail.
If either halts the evaluation will halt too.
def pull: ToPull[F, O]
Gets a projection of this stream that allows converting it to a Pull in a number of ways.
def repeatPull[O2](f: ToPull[F, O] => Pull[F, O2, Option[Stream[F, O]]]): Stream[F, O2]
Repeatedly invokes using, running the resultant Pull each time, halting when a pull
returns None instead of Some(nextStream).