Represents programs that decide in an event driven context
This is basically a simple state machine like the following:
[*] -> InDecisive
InDecisive -- event --> Accepted
InDecisive -- join --> InDecisive
InDecisive -- rejection --> Rejected (resets and terminates)
Accepted -- event --> Accepted (accumulates)
Accepted -- rejection --> Rejected (resets and terminates)
It forms a monad error and also is traversable.
- Type parameters:
- A
program output type
- E
event type
- R
rejection type
- Companion:
- object
- Source:
- Decision.scala
Value members
Concrete methods
Asserts output using a ValidatedNec without changing it
Asserts output using a ValidatedNec without changing it
- Source:
- Decision.scala
Asserts output using an EitherNec without changing it
Asserts output using an EitherNec without changing it
- Source:
- Decision.scala
Asserts output using an Either without changing it
Asserts output using an Either without changing it
- Source:
- Decision.scala
binds another decision to this one, creates a new decision
binds another decision to this one, creates a new decision
- Source:
- Decision.scala
creates a new decision that changes the output value of this one
creates a new decision that changes the output value of this one
- Source:
- Decision.scala
Ignores events and errors and creates an Option that contains program output
Ignores events and errors and creates an Option that contains program output
- Source:
- Decision.scala
Ignores events and creates a ValidatedNec
Ignores events and creates a ValidatedNec
- Source:
- Decision.scala
Validates output using an EitherNec
Validates output using an EitherNec
- Source:
- Decision.scala
Validates output using an Either
Validates output using an Either
- Source:
- Decision.scala
traverses this decision, run fr if there are errors and runs fa if there is some output
traverses this decision, run fr if there are errors and runs fa if there is some output
- Source:
- Decision.scala