object Pull extends PullLowPriority
- Source
- Pull.scala
- Alphabetic
- By Inheritance
- Pull
- PullLowPriority
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
-
implicit final
class
IdOps[O] extends AnyVal
Provides syntax for pure pulls based on
cats.Id
. - final class PartiallyAppliedFromEither[F[_]] extends AnyRef
- implicit final class StreamPullOps[F[_], O] extends AnyVal
-
trait
Timed[F[_], O] extends AnyRef
An abstraction for writing
Pull
computations that can timeout while reading from aStream
.An abstraction for writing
Pull
computations that can timeout while reading from aStream
.A
Pull.Timed
is not created or intepreted directly, but by calling Stream.ToPull.timed.yourStream.pull.timed(tp => ...).stream
The argument to
timed
is aPull.Timed[F, O] => Pull[F, O2, R]
function, which describes the pulling logic and is often recursive, with shape:def go(timedPull: Pull.Timed[F, A]): Pull[F, B, Unit] = timedPull.uncons.flatMap { case Some((Right(chunk), next)) => doSomething >> go(next) case Some((Left(_), next)) => doSomethingElse >> go(next) case None => Pull.done }
Where
doSomething
anddoSomethingElse
arePull
computations such asPull.output
, in addition toPull.Timed.timeout
.See below for detailed descriptions of
timeout
anduncons
, and look at the Stream.ToPull.timed scaladoc for an example of usage.
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
attemptEval[F[_], R](fr: F[R]): Pull[F, Nothing, Either[Throwable, R]]
Like eval but if the effectful value fails, the exception is returned in a
Left
instead of failing the pull. - def bracketCase[F[_], O, A, B](acquire: Pull[F, O, A], use: (A) ⇒ Pull[F, O, B], release: (A, ExitCase) ⇒ Pull[F, O, Unit]): Pull[F, O, B]
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native() @IntrinsicCandidate()
-
val
done: Pull[Nothing, Nothing, Unit]
A pull that performs no effects, emits no outputs, and always terminates successfully with a unit result.
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
eval[F[_], R](fr: F[R]): Pull[F, Nothing, R]
Creates a pull that evaluates the supplied effect
fr
, emits no outputs, and terminates with the result of the effect.Creates a pull that evaluates the supplied effect
fr
, emits no outputs, and terminates with the result of the effect. If thefr
effect fails with an error, the new pull fails with that error. -
def
extendScopeTo[F[_], O](s: Stream[F, O])(implicit F: MonadError[F, Throwable]): Pull[F, Nothing, 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 befores
is compiled and evaluated. -
def
fromEither[F[x]]: PartiallyAppliedFromEither[F]
Lifts an Either[Throwable, A] to an effectful Pull[F, A, Unit].
Lifts an Either[Throwable, A] to an effectful Pull[F, A, Unit].
scala> import cats.effect.SyncIO, scala.util.Try scala> Pull.fromEither[SyncIO](Right(42)).stream.compile.toList.unsafeRunSync() res0: List[Int] = List(42) scala> Try(Pull.fromEither[SyncIO](Left(new RuntimeException)).stream.compile.toList.unsafeRunSync()) res1: Try[List[Nothing]] = Failure(java.lang.RuntimeException)
Example: -
implicit
def
functionKInstance[F[_]]: ~>[F, [γ$1$]Pull[F, Nothing, γ$1$]]
FunctionK
instance forF ~> Pull[F, Nothing, *]
FunctionK
instance forF ~> Pull[F, Nothing, *]
scala> import cats.Id scala> Pull.functionKInstance[Id](42).flatMap(Pull.output1).stream.compile.toList res0: cats.Id[List[Int]] = List(42)
Example: -
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
loop[F[_], O, R](f: (R) ⇒ Pull[F, O, Option[R]]): (R) ⇒ Pull[F, O, Unit]
Repeatedly uses the output of the pull as input for the next step of the pull.
Repeatedly uses the output of the pull as input for the next step of the pull. Halts when a step terminates with
None
orPull.raiseError
. -
def
loopEither[F[_], O, S, R](f: (S) ⇒ Pull[F, O, Either[S, R]]): (S) ⇒ Pull[F, O, R]
Intantiates with a state.
Intantiates with a state. Repeatedly uses the left value of the result of the pull as input for the next step. The Pull terminates when a step terminates with
Right
orPull.raiseError
. -
implicit
def
monadErrorInstance[F[_], O]: MonadError[[γ$3$]Pull[F, O, γ$3$], Throwable]
- Definition Classes
- PullLowPriority
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
-
def
output[F[_], O](os: Chunk[O]): Pull[F, O, Unit]
Creates a pull that emits the elements of the given chunk.
Creates a pull that emits the elements of the given chunk. The new pull performs no effects and terminates successfully with a unit result.
-
def
output1[F[_], O](o: O): Pull[F, O, Unit]
Lifts the given output value
O
into a pull that performs no effects, emits that single output in a singleton chunk, and always terminates successfully with a unit result.Lifts the given output value
O
into a pull that performs no effects, emits that single output in a singleton chunk, and always terminates successfully with a unit result._Note_: using singleton chunks is not efficient. If possible, use the chunk-based
output
method instead. -
def
outputOption1[F[_], O](opt: Option[O]): Pull[F, O, Unit]
Lifts the given optional value
O
into a pull that performs no effects, emits the content of that option, and always terminates successfully with a unit result. -
def
pure[F[_], R](r: R): Pull[F, Nothing, R]
Creates an pull that performs no effects, emits no outputs, and terminates successfully with the supplied value as its result.
-
def
raiseError[F[_]](err: Throwable)(implicit arg0: RaiseThrowable[F]): Pull[F, Nothing, Nothing]
Lifts a throwable error into an atomic pull that emits no outputs and fails with the given error, without any result.
Lifts a throwable error into an atomic pull that emits no outputs and fails with the given error, without any result.
The
F
type must be explicitly provided (e.g., viaraiseError[IO]
orraiseError[Fallible]
).- Annotations
- @nowarn()
-
def
sleep[F[_]](d: FiniteDuration)(implicit t: Temporal[F]): Pull[F, Nothing, Unit]
Creates a pull that waits for the duration
d
-
def
suspend[F[_], 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.
-
implicit
def
syncInstance[F[_], O](implicit arg0: Sync[F]): Sync[[γ$0$]Pull[F, O, γ$0$]]
Sync
instance forPull
. -
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )