Packages

  • package root
    Definition Classes
    root
  • package h8io
    Definition Classes
    root
  • package stages
    Definition Classes
    h8io
  • package base

    Type aliases used throughout the lib module for describing stage transformations.

    Type aliases used throughout the lib module for describing stage transformations.

    // A decorator wraps a Stage[I, O, E] and returns another Stage[I, O, E]:
    val myDecorator: Decorator[String, Int, Nothing] = CompleteIfNone(_)
    
    // An alteration converts any Stage to a (possibly different) Stage:
    val myAlt: Alteration[Stage[String, Int, Nothing], Stage[String, Option[Int], Nothing]] = Lift(_)
    Definition Classes
    stages
  • package cats
    Definition Classes
    stages
  • package examples
    Definition Classes
    stages
  • package operators
    Definition Classes
    stages
  • package projections
    Definition Classes
    stages
  • package std
    Definition Classes
    stages
  • Evolution
  • Outcome
  • Stage
  • Status
  • Yield

trait Evolution[-I, +O, +E] extends AnyRef

A strategy that selects the next Stage to use when the pipeline is ready to re-process, based on the Status carried by the Yield returned from the most recent stage application. In a composed pipeline, this refers to the combined Yield produced for the current input.

Every Yield carries an Evolution whose evolve method selects the next stage based on the current Status. The appropriate stage is selected based on the Yield.status — callers use Yield.evolve rather than dispatching on the status directly.

Evolution is contravariant in I and covariant in O and E, mirroring the variance of the Stage values it returns.

I

the input type consumed by the returned stages (contravariant)

O

the output type produced by the returned stages (covariant)

E

the error type (covariant)

Source
Evolution.scala
Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Evolution
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Abstract Value Members

  1. abstract def dispose(): Unit

    Releases all resources held by the Stage that produced this evolution.

    Releases all resources held by the Stage that produced this evolution.

    After this call the producing stage must be considered permanently unusable — it must not be applied or skipped again. This is the exclusive cleanup point for resources owned by the producing stage.

    Called when the producing stage is permanently shut down:

    • by Stage.execute after the pipeline has produced its terminal Outcome, so the continuation is released immediately rather than carried forward;
    • when apply throws a Throwable, since the stage can no longer be used and all its resources must still be released.

    Implementations that hold no external resources may leave this as a no-op.

  2. abstract def evolve(status: Status[_]): Stage[I, O, E]

    Returns the next Stage based on the given status.

    Returns the next Stage based on the given status.

    May release resources that are specific to this evolution instance and will not be reused by subsequent generations (i.e. resources not needed by the returned stage or its own evolution).

    status

    the status that determines the continuation stage

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @IntrinsicCandidate() @native()
  6. final def compose[_O, _E >: E](that: Evolution[O, _O, _E]): Evolution[I, _O, _E]

    Composes this evolution with another, creating a new evolution whose continuation for any status is the sequential composition of the corresponding continuations of both evolutions.

    Composes this evolution with another, creating a new evolution whose continuation for any status is the sequential composition of the corresponding continuations of both evolutions.

    Specifically:

    composed(s) == self(s) ~> that(s)

    Used internally when merging evolutions during Yield composition inside Stage.AndThen.

    _O

    the output type of the resulting stages

    _E

    the combined error type

    that

    the downstream evolution to compose with

    returns

    a new evolution representing self followed by that

    Annotations
    @inline()
  7. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  8. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  9. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @IntrinsicCandidate() @native()
  10. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @IntrinsicCandidate() @native()
  11. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  12. final def map[_I, _O, _E](f: (Stage[I, O, E]) => Stage[_I, _O, _E]): Evolution[_I, _O, _E]

    Transforms every continuation of this evolution by applying f to the stage it returns.

    Transforms every continuation of this evolution by applying f to the stage it returns.

    This is the public API for adapting an Evolution to a different stage type without exposing internal composition details.

    _I

    the input type of the resulting stages

    _O

    the output type of the resulting stages

    _E

    the error type of the resulting stages

    f

    a function that transforms each continuation stage

    returns

    a new evolution with all continuations mapped by f

    Annotations
    @inline()
  13. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  14. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @IntrinsicCandidate() @native()
  15. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @IntrinsicCandidate() @native()
  16. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  17. def toString(): String
    Definition Classes
    AnyRef → Any
  18. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  19. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  20. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated
    Deprecated

    (Since version 9)

Inherited from AnyRef

Inherited from Any

Ungrouped