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
Attributes
- Companion
- object
- Source
- Decision.scala
- Graph
-
- Supertypes
- Known subtypes
- Self type
-
Members list
Value members
Concrete methods
Attributes
- Source
- Decision.scala
Attributes
- Source
- Decision.scala
Asserts output using a ValidatedNec without changing it
Asserts output using an EitherNec without changing it
Asserts output using an Either without changing it
binds another decision to this one, creates a new decision
Attributes
- Source
- Decision.scala
whether is accepted or not
whether is rejected or not
creates a new decision that changes the output value of this one
Ignores events and creates an Either
Ignores events and errors and creates an Option that contains program output
Ignores events and errors and creates an Option that contains program output
Attributes
- Source
- Decision.scala
Ignores events and creates a ValidatedNec
Validates output using a ValidatedNec
Validates output using an EitherNec
Validates output using an Either
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
Attributes
- Source
- Decision.scala
Ignores output value