trait SafeStage[-I, +O, +E] extends Stage[I, O, E]
A h8io.stages.Stage that separates normal execution from exception recovery.
SafeStage seals apply and dispatches to body for the happy path. If body throws a non-fatal exception
(anything matched by scala.util.control.NonFatal), recover is called instead. Fatal exceptions (e.g.,
OutOfMemoryError) are not caught and propagate normally.
Concrete classes implement body for the normal case and recover to convert exceptions into an appropriate
h8io.stages.Yield (typically a h8io.stages.Yield.None with an error status).
- I
the input type (contravariant)
- O
the output type (covariant)
- E
the error type (covariant)
- Alphabetic
- By Inheritance
- SafeStage
- Stage
- Function1
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Abstract Value Members
-
abstract
def
body(in: I): Yield[I, O, E]
The main execution logic invoked on each input.
The main execution logic invoked on each input.
- in
the input value
- returns
a
h8io.stages.Yieldrepresenting the result
-
abstract
def
recover(in: I, e: Throwable): Yield[I, O, E]
Called when body throws a non-fatal exception.
-
abstract
def
skip(): Evolution[I, O, E]
Returns this stage's Evolution without consuming an input.
Returns this stage's Evolution without consuming an input.
Called instead of
applywhenever 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. Likeapply,skip()may perform side effects — a decorator, for instance, may advance or release the inner stage it owns.- Definition Classes
- 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
-
def
andThen[A](g: (Yield[I, O, E]) ⇒ A): (I) ⇒ A
- Definition Classes
- Function1
- Annotations
- @unspecialized()
-
final
def
apply(in: I): Yield[I, O, E]
Processes
inand returns the Yield carrying the optional output, the status and the continuation. -
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native() @IntrinsicCandidate()
-
def
compose[A](g: (A) ⇒ I): (A) ⇒ Yield[I, O, E]
- Definition Classes
- Function1
- Annotations
- @unspecialized()
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- Function1 → AnyRef → Any
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
~>[_O, _E >: E](that: Stage[O, _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
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] ) @Deprecated
- Deprecated