Pull

object Pull extends PullLowPriority
Companion
class
trait PullLowPriority
class Object
trait Matchable
class Any

Type members

Classlikes

final class PartiallyAppliedFromEither[F <: ([_$12] =>> Any)]

Value members

Methods

def attemptEval[F <: ([_$4] =>> Any), R](fr: F[R]): Pull[F, INothing, Either[Throwable, R]]
Like eval but if the effectful value fails, the exception is returned in a Left
instead of failing the pull.
def eval[F <: ([_$5] =>> Any), R](fr: F[R]): Pull[F, INothing, R]
Evaluates the supplied effectful value and returns the result as the resource of the returned pull.
def extendScopeTo[F <: ([_$6] =>> Any), O](s: Stream[F, O])(F: MonadError[F, Throwable]): Pull[F, INothing, Stream[F, O]]
Extends the scope of the currently open resources to the specified stream, preventing them
from being finalized until after s completes execution, even if the returned pull is converted
to a stream, compiled, and evaluated before s is compiled and evaluated.
def loop[F <: ([_$9] =>> Any), O, R](f: R => Pull[F, O, Option[R]]): R => Pull[F, O, Option[R]]
Repeatedly uses the output of the pull as input for the next step of the pull.
Halts when a step terminates with None or Pull.raiseError.
def output1[F >: ([x] =>> Pure[x]) <: ([x] =>> Any), O](o: O): Pull[F, O, Unit]
Outputs a single value.
def output[F >: ([x] =>> Pure[x]) <: ([x] =>> Any), O](os: Chunk[O]): Pull[F, O, Unit]
Outputs a chunk of values.
def pure[F >: ([x] =>> Pure[x]) <: ([x] =>> Any), R](r: R): Pull[F, INothing, R]
Pull that outputs nothing and has result of r.
def raiseError[F <: ([_$11] =>> Any)](err: Throwable)(evidence$1: RaiseThrowable[F]): Pull[F, INothing, INothing]
Reads and outputs nothing, and fails with the given error.
The F type must be explicitly provided (e.g., via raiseError[IO] or raiseError[Fallible]).
def fromEither[F <: ([x] =>> Any)]: PartiallyAppliedFromEither[F]
Lifts an Either[Throwable, A] to an effectful Pull[F, A, Unit] .
Example
{{{
scala> import cats.effect.IO, scala.util.Try
scala> Pull.fromEitherIO.stream.compile.toList.unsafeRunSync()
res0: List[Int] = List(42)
scala> Try(Pull.fromEither[IO] (Left(new RuntimeException)).stream.compile.toList.unsafeRunSync())
res1: Try[List[INothing] ] = Failure(java.lang.RuntimeException)
}}}
def getScope[F <: ([_$13] =>> Any)]: Pull[F, INothing, Scope[F]]
Gets the current scope, allowing manual leasing or interruption.
This is a low-level method and generally should not be used by user code.
def suspend[F >: ([x] =>> Pure[x]) <: ([x] =>> Any), O, R](p: => Pull[F, O, R]): Pull[F, O, R]
Returns a pull that evaluates the supplied by-name each time the pull is used,
allowing use of a mutable value in pull computations.

Fields

val done: Pull[Pure, INothing, Unit]
The completed Pull. Reads and outputs nothing.

Implicits

Implicits

implicit def syncInstance[F <: ([_$14] =>> Any), O](ev: ApplicativeError[F, Throwable]): Sync[[_$15] =>> Pull[F, O, _$15]]
Sync instance for Pull.
implicit def functionKInstance[F <: ([_$16] =>> Any)]: FunctionK[F, [_$17] =>> Pull[F, INothing, _$17]]
FunctionK instance for F ~> Pull[F, INothing, *]
Example
{{{
scala> import cats.Id
scala> Pull.functionKInstanceId.flatMap(Pull.output1).stream.compile.toList
res0: cats.Id[List[Int] ] = List(42)
}}}

Inherited implicits

implicit def monadInstance[F <: ([_$19] =>> Any), O]: Monad[[_$20] =>> Pull[F, O, _$20]]
Inhertied from
PullLowPriority