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
- Alphabetic
- By Inheritance
- Evolution
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Abstract Value Members
- 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
applythrows aThrowable, 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.
- 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
- 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 clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @IntrinsicCandidate() @native()
- 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
selffollowed bythat
- Annotations
- @inline()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @IntrinsicCandidate() @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @IntrinsicCandidate() @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- 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
fto the stage it returns.Transforms every continuation of this evolution by applying
fto the stage it returns.This is the public API for adapting an
Evolutionto 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()
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @IntrinsicCandidate() @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @IntrinsicCandidate() @native()
- 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(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
(Since version 9)