Class/Object

monix.eval

Coeval

Related Docs: object Coeval | package eval

Permalink

sealed abstract class Coeval[+A] extends Serializable

Coeval represents lazy computations that can execute synchronously.

Word definition and origin:

There are three evaluation strategies:

The Once and Always are both lazy strategies while Now and Error are eager. Once and Always are distinguished from each other only by memoization: once evaluated Once will save the value to be returned immediately if it is needed again. Always will run its computation every time.

Both Now and Error are represented by the Attempt trait, a sub-type of Coeval that can be used as a replacement for Scala's own Try type.

Coeval supports stack-safe lazy computation via the .map and .flatMap methods, which use an internal trampoline to avoid stack overflows. Computation done within .map and .flatMap is always done lazily, even when applied to a Now instance.

Self Type
Coeval[A]
Source
Coeval.scala
Linear Supertypes
Serializable, Serializable, AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Coeval
  2. Serializable
  3. Serializable
  4. AnyRef
  5. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  5. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  6. def dematerialize[B](implicit ev: <:<[A, Try[B]]): Coeval[B]

    Permalink

    Dematerializes the source's result from a Try.

  7. def dematerializeAttempt[B](implicit ev: <:<[A, Attempt[B]]): Coeval[B]

    Permalink

    Dematerializes the source's result from an Attempt.

  8. def doOnFinish(f: (Option[Throwable]) ⇒ Coeval[Unit]): Coeval[A]

    Permalink

    Returns a new Coeval in which f is scheduled to be run on completion.

    Returns a new Coeval in which f is scheduled to be run on completion. This would typically be used to release any resources acquired by this Coeval.

  9. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  10. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  11. def failed: Coeval[Throwable]

    Permalink

    Returns a failed projection of this coeval.

    Returns a failed projection of this coeval.

    The failed projection is a future holding a value of type Throwable, emitting a value which is the throwable of the original coeval in case the original coeval fails, otherwise if the source succeeds, then it fails with a NoSuchElementException.

  12. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  13. def flatMap[B](f: (A) ⇒ Coeval[B]): Coeval[B]

    Permalink

    Creates a new Coeval by applying a function to the successful result of the source, and returns a new instance equivalent to the result of the function.

  14. def flatten[B](implicit ev: <:<[A, Coeval[B]]): Coeval[B]

    Permalink

    Given a source Coeval that emits another Coeval, this function flattens the result, returning a Coeval equivalent to the emitted Coeval by the source.

  15. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  16. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  17. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  18. def map[B](f: (A) ⇒ B): Coeval[B]

    Permalink

    Returns a new Coeval that applies the mapping function to the element emitted by the source.

  19. def materialize: Coeval[Try[A]]

    Permalink

    Creates a new Coeval that will expose any triggered error from the source.

  20. def materializeAttempt: Coeval[Attempt[A]]

    Permalink

    Creates a new Coeval that will expose any triggered error from the source.

  21. def memoize: Coeval[A]

    Permalink

    Memoizes the result on the computation and reuses it on subsequent invocations of runAsync.

  22. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  23. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  24. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  25. def onErrorFallbackTo[B >: A](that: Coeval[B]): Coeval[B]

    Permalink

    Creates a new coeval that in case of error will fallback to the given backup coeval.

  26. def onErrorHandle[U >: A](f: (Throwable) ⇒ U): Coeval[U]

    Permalink

    Creates a new coeval that will handle any matching throwable that this coeval might emit.

    Creates a new coeval that will handle any matching throwable that this coeval might emit.

    See onErrorRecover for the version that takes a partial function.

  27. def onErrorHandleWith[B >: A](f: (Throwable) ⇒ Coeval[B]): Coeval[B]

    Permalink

    Creates a new coeval that will handle any matching throwable that this coeval might emit by executing another coeval.

    Creates a new coeval that will handle any matching throwable that this coeval might emit by executing another coeval.

    See onErrorRecoverWith for the version that takes a partial function.

  28. def onErrorRecover[U >: A](pf: PartialFunction[Throwable, U]): Coeval[U]

    Permalink

    Creates a new coeval that on error will try to map the error to another value using the provided partial function.

    Creates a new coeval that on error will try to map the error to another value using the provided partial function.

    See onErrorHandle for the version that takes a total function.

  29. def onErrorRecoverWith[B >: A](pf: PartialFunction[Throwable, Coeval[B]]): Coeval[B]

    Permalink

    Creates a new coeval that will try recovering from an error by matching it with another coeval using the given partial function.

    Creates a new coeval that will try recovering from an error by matching it with another coeval using the given partial function.

    See onErrorHandleWith for the version that takes a total function.

  30. def onErrorRestart(maxRetries: Long): Coeval[A]

    Permalink

    Creates a new coeval that in case of error will retry executing the source again and again, until it succeeds.

    Creates a new coeval that in case of error will retry executing the source again and again, until it succeeds.

    In case of continuous failure the total number of executions will be maxRetries + 1.

  31. def onErrorRestartIf(p: (Throwable) ⇒ Boolean): Coeval[A]

    Permalink

    Creates a new coeval that in case of error will retry executing the source again and again, until it succeeds.

    Creates a new coeval that in case of error will retry executing the source again and again, until it succeeds.

    In case of continuous failure the total number of executions will be maxRetries + 1.

  32. def restartUntil(p: (A) ⇒ Boolean): Coeval[A]

    Permalink

    Given a predicate function, keep retrying the coeval until the function returns true.

  33. def runAttempt: Attempt[A]

    Permalink

    Evaluates the underlying computation and returns the result or any triggered errors as a Coeval.Attempt.

  34. def runTry: Try[A]

    Permalink

    Evaluates the underlying computation and returns the result or any triggered errors as a scala.util.Try.

  35. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  36. def task: Task[A]

    Permalink

    Converts the source Coeval into a Task.

  37. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  38. def value: A

    Permalink

    Evaluates the underlying computation and returns the result.

    Evaluates the underlying computation and returns the result.

    NOTE: this can throw exceptions.

  39. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  40. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  41. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  42. def zip[B](that: Coeval[B]): Coeval[(A, B)]

    Permalink

    Zips the values of this and that coeval, and creates a new coeval that will emit the tuple of their results.

  43. def zipMap[B, C](that: Coeval[B])(f: (A, B) ⇒ C): Coeval[C]

    Permalink

    Zips the values of this and that and applies the given mapping function on their results.

Deprecated Value Members

  1. def zipWith[B, C](that: Coeval[B])(f: (A, B) ⇒ C): Coeval[C]

    Permalink
    Annotations
    @deprecated
    Deprecated

    (Since version 2.0-RC12) Renamed, please use Coeval.zipMap

Inherited from Serializable

Inherited from Serializable

Inherited from AnyRef

Inherited from Any

Ungrouped