Packages

final case class IOr[-I, +LO, +RO, +E](left: Stage[I, LO, E], right: Stage[I, RO, E]) extends BinaryOperator[Stage[I, LO, E], Stage[I, RO, E], I, Ior[LO, RO], E] with Product with Serializable

A binary operator that applies two stages independently to the same input and combines their outputs into a cats.data.Ior (inclusive-or).

All four combinations of left/right presence are handled:

Left result

Right result

Output

Yield.Some

Yield.Some

Ior.Both(l, r)

Yield.Some

Yield.None

Ior.Left(l)

Yield.None

Yield.Some

Ior.Right(r)

Yield.None

Yield.None

Yield.None

Unlike h8io.stages.operators.And (which skips right when left yields no output) and h8io.stages.operators.Or (which skips right when left yields one), IOr always applies both stages, making it the inclusive variant.

Statuses from both stages are merged with combine. The evolution pairs corresponding branches symmetrically (like h8io.stages.operators.IAnd).

I

the shared input type (contravariant)

LO

the left output type (covariant)

RO

the right output type (covariant)

E

the error type (covariant)

left

the stage producing the left side of the Ior

right

the stage producing the right side of the Ior

Linear Supertypes
Serializable, Serializable, Product, Equals, BinaryOperator[Stage[I, LO, E], Stage[I, RO, E], I, Ior[LO, RO], E], Stage[I, Ior[LO, RO], E], (I) ⇒ Yield[I, Ior[LO, RO], E], AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. IOr
  2. Serializable
  3. Serializable
  4. Product
  5. Equals
  6. BinaryOperator
  7. Stage
  8. Function1
  9. AnyRef
  10. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new IOr(left: Stage[I, LO, E], right: Stage[I, RO, E])

    left

    the stage producing the left side of the Ior

    right

    the stage producing the right side of the Ior

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. def andThen[A](g: (Yield[I, Ior[LO, RO], E]) ⇒ A): (I) ⇒ A
    Definition Classes
    Function1
    Annotations
    @unspecialized()
  5. def apply(in: I): Yield[I, Ior[LO, RO], E]

    Processes in and returns the Yield carrying the optional output, the status and the continuation.

    Processes in and returns the Yield carrying the optional output, the status and the continuation.

    A stage that throws from here must have released its own resources first — see the Lifecycle section above.

    Definition Classes
    IOr → Stage → Function1
  6. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  7. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native() @IntrinsicCandidate()
  8. def compose[A](g: (A) ⇒ I): (A) ⇒ Yield[I, Ior[LO, RO], E]
    Definition Classes
    Function1
    Annotations
    @unspecialized()
  9. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  10. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @IntrinsicCandidate()
  11. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  12. val left: Stage[I, LO, E]

    The left sub-stage.

    The left sub-stage.

    Definition Classes
    IOr → BinaryOperator
  13. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  14. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @IntrinsicCandidate()
  15. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @IntrinsicCandidate()
  16. val right: Stage[I, RO, E]

    The right sub-stage.

    The right sub-stage.

    Definition Classes
    IOr → BinaryOperator
  17. def skip(): Evolution[I, Ior[LO, RO], E]

    Returns this stage's Evolution without consuming an input.

    Returns this stage's Evolution without consuming an input.

    Called instead of apply whenever the stage takes part in a run but has nothing to process: the upstream yielded no output, or a binary operator excluded this branch. The evolution must be the one the stage would have returned had it run. Like apply, skip() may perform side effects — a decorator, for instance, may advance or release the inner stage it owns.

    Definition Classes
    IOr → Stage
  18. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  19. def toString(): String
    Definition Classes
    Function1 → AnyRef → Any
  20. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  21. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  22. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  23. final def ~>[_O, _E >: E](that: Stage[Ior[LO, RO], _O, _E]): Stage[I, _O, _E]

    Composes this stage with that, feeding this stage's output into it.

    Composes this stage with that, feeding this stage's output into it. See the Composition section above for what happens when there is no output to feed.

    Definition Classes
    Stage
    Annotations
    @inline()

Deprecated Value Members

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

Inherited from Serializable

Inherited from Serializable

Inherited from Product

Inherited from Equals

Inherited from BinaryOperator[Stage[I, LO, E], Stage[I, RO, E], I, Ior[LO, RO], E]

Inherited from Stage[I, Ior[LO, RO], E]

Inherited from (I) ⇒ Yield[I, Ior[LO, RO], E]

Inherited from AnyRef

Inherited from Any

Ungrouped