sealed abstract class Pull[+F[_], +O, +R] extends AnyRef
A p: Pull[F,O,R]
reads values from one or more streams, returns a
result of type R
, and produces a Stream[F,O]
when calling p.stream
.
Any resources acquired by p
are freed following the call to stream
.
Laws:
Pull
forms a monad in R
with pure
and flatMap
:
pure >=> f == f
f >=> pure == f
(f >=> g) >=> h == f >=> (g >=> h)
wheref >=> g
is defined asa => a flatMap f flatMap g
raiseError
is caught by handleErrorWith
:
handleErrorWith(raiseError(e))(f) == f(e)
- Source
- Pull.scala
- Alphabetic
- By Inheritance
- Pull
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Abstract Value Members
Concrete 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
- def >>[F2[x] >: F[x], O2 >: O, R2](p2: => Pull[F2, O2, R2]): Pull[F2, O2, R2]
Alias for
flatMap(_ => p2)
. - def as[R2](r2: R2): Pull[F, O, R2]
Alias for
_.map(_ => o2)
. - final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def attempt: Pull[F, O, Either[Throwable, R]]
Returns a pull with the result wrapped in
Right
, or an error wrapped inLeft
if the pull has failed. - def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
- def covary[F2[x] >: F[x]]: Pull[F2, O, R]
Lifts this pull to the specified effect type.
- def covaryAll[F2[x] >: F[x], O2 >: O, R2 >: R]: Pull[F2, O2, R2]
Lifts this pull to the specified effect type, output type, and resource type.
- def covaryOutput[O2 >: O]: Pull[F, O2, R]
Lifts this pull to the specified output type.
- def covaryResource[R2 >: R]: Pull[F, O, R2]
Lifts this pull to the specified resource type.
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def flatMap[F2[x] >: F[x], O2 >: O, R2](f: (R) => Pull[F2, O2, R2]): Pull[F2, O2, R2]
Applies the resource of this pull to
f
and returns the result. - final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def handleErrorWith[F2[x] >: F[x], O2 >: O, R2 >: R](h: (Throwable) => Pull[F2, O2, R2]): Pull[F2, O2, R2]
If
this
terminates withPull.raiseError(e)
, invokeh(e)
. - def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def map[R2](f: (R) => R2): Pull[F, O, R2]
Applies the resource of this pull to
f
and returns the result in a newPull
. - final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def onComplete[F2[x] >: F[x], O2 >: O, R2 >: R](p2: => Pull[F2, O2, R2]): Pull[F2, O2, R2]
Run
p2
afterthis
, regardless of errors duringthis
, then reraise any errors encountered duringthis
. - def stream(implicit ev: <:<[R, Unit]): Stream[F, O]
Interpret this
Pull
to produce aStream
, introducing a scope.Interpret this
Pull
to produce aStream
, introducing a scope.May only be called on pulls which return a
Unit
result type. Usep.void.stream
to explicitly ignore the result type of the pull. - def streamNoScope(implicit ev: <:<[R, Unit]): Stream[F, O]
Interpret this
Pull
to produce aStream
without introducing a scope.Interpret this
Pull
to produce aStream
without introducing a scope.Only use this if you know a scope is not needed. Scope introduction is generally harmless and the risk of not introducing a scope is a memory leak in streams that otherwise would execute in constant memory.
May only be called on pulls which return a
Unit
result type. Usep.void.stream
to explicitly ignore the result type of the pull. - final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- def void: Pull[F, O, Unit]
Discards the result type of this pull.
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
Deprecated Value Members
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated