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

object Evolution

Source
Evolution.scala
Linear Supertypes
AnyRef, scala.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

Type Members

  1. final case class AndThen[-I, OI, +O, +E](upstream: Evolution[OI, O, E], downstream: Evolution[I, OI, E]) extends Evolution[I, O, E] with Product with Serializable

    An Evolution composed of two sequential evolutions.

    An Evolution composed of two sequential evolutions.

    Parameter naming

    The field names are intentionally the reverse of Stage.AndThen. In Stage.AndThen, upstream processes I → OI and downstream processes OI → O. Here it is the other way around:

    • downstream: Evolution[I, OI, E] — holds the evolution of the pipeline's upstream stage (I → OI).
    • upstream: Evolution[OI, O, E] — holds the evolution of the pipeline's downstream stage (OI → O).

    The inversion follows from how <~ routes data: upstream(s) <~ downstream(s) feeds downstream's stage first, so the I → OI evolution occupies downstream and OI → O occupies upstream. compose stores its receiver as downstream and its argument as upstream:

    pipelineUpstream.skip().compose(pipelineDownstream.skip())
    // == Evolution.AndThen(upstream = pipelineDownstream.skip(),
    //                      downstream = pipelineUpstream.skip())

    Continuation composition

    For any status s:

    composed(s) == upstream(s) <~ downstream(s)
    // data flow: I → downstream's stage → OI → upstream's stage → O

    Disposal

    Both evolutions are disposed in the order upstream then downstream (i.e. pipeline-downstream first, then pipeline-upstream), matching the reverse-order convention used in Stage.AndThen before disposal was moved to Evolution.

    I

    input type of the composed pipeline

    OI

    intermediate type between the two stages

    O

    output type of the composed pipeline

    E

    error type

    upstream

    the evolution of the pipeline's downstream stage (OI → O)

    downstream

    the evolution of the pipeline's upstream stage (I → OI)

  2. type Any = Evolution[_, _, _]
  3. type Endo[T, +E] = Evolution[T, T, E]
  4. final case class Mapped[II, IO, IE, -OI, +OO, +OE](evolution: Evolution[II, IO, IE], f: (Stage[II, IO, IE]) => Stage[OI, OO, OE]) extends Evolution[OI, OO, OE] with Product with Serializable

    An Evolution whose continuations are produced by applying f to the corresponding continuations of evolution.

    An Evolution whose continuations are produced by applying f to the corresponding continuations of evolution.

    Created by Evolution#map. Disposal is delegated to the wrapped evolution.

    II

    input type of the inner stages

    IO

    output type of the inner stages

    IE

    error type of the inner stages

    OI

    input type of the resulting stages (contravariant)

    OO

    output type of the resulting stages (covariant)

    OE

    error type of the resulting stages (covariant)

    evolution

    the inner evolution whose continuations are transformed

    f

    the function applied to each continuation stage

Value Members

  1. final def !=(arg0: scala.Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: scala.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 eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  7. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  8. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @IntrinsicCandidate() @native()
  9. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @IntrinsicCandidate() @native()
  10. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  11. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  12. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @IntrinsicCandidate() @native()
  13. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @IntrinsicCandidate() @native()
  14. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  15. def toString(): String
    Definition Classes
    AnyRef → Any
  16. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  17. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  18. 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 scala.Any

Ungrouped