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
- All
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( ... ) @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: Any): 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[_]
- 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( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
Deprecated Value Members
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] ) @Deprecated @deprecated
- Deprecated
(Since version ) see corresponding Javadoc for more information.