Package-level declarations
Types
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
sealed interface ConcurrentMovementMaybeResult<out State, out Transition, out NoTransitionReason, out NoNextStateReason>
Link copied to clipboard
Link copied to clipboard
@RequiresOptIn(level = RequiresOptIn.Level.WARNING, message = "This is primitive internal automaton API. Use with caution.")
Link copied to clipboard
sealed interface MovementAndComputationResult<out State, out Transition, out NoNextStateReason, out Computation>
Link copied to clipboard
sealed interface MovementMaybeAndComputationResult<out State, out Transition, out NoTransitionReason, out NoNextStateReason, out Computation>
Link copied to clipboard
sealed interface MovementMaybeResult<out State, out Transition, out NoTransitionReason, out NoNextStateReason>
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
data class TransitionAndComputation<out Transition, out Computation>(val transition: Transition, val computation: Computation)
Link copied to clipboard
Link copied to clipboard
Functions
Link copied to clipboard
inline fun <State, Transition, NoNextStateReason> AsynchronousAutomaton(mutex: Mutex = Mutex(), initialState: State, crossinline checkTransition: suspend AsynchronousAutomaton<State, Transition, NoNextStateReason>.(previousState: State, transition: Transition) -> CheckResult<State, NoNextStateReason>, crossinline onTransition: suspend AsynchronousAutomaton<State, Transition, NoNextStateReason>.(previousState: State, transition: Transition, nextState: State) -> Unit = { _, _, _ -> }): AsynchronousAutomaton<State, Transition, NoNextStateReason>
Link copied to clipboard
inline fun <State, Transition, NoNextStateReason> BlockingAutomaton(lock: ReentrantLock = ReentrantLock(), initialState: State, crossinline checkTransition: BlockingAutomaton<State, Transition, NoNextStateReason>.(previousState: State, transition: Transition) -> CheckResult<State, NoNextStateReason>, crossinline onTransition: BlockingAutomaton<State, Transition, NoNextStateReason>.(previousState: State, transition: Transition, nextState: State) -> Unit = { _, _, _ -> }): BlockingAutomaton<State, Transition, NoNextStateReason>
Link copied to clipboard
suspend fun <State, Transition, NoNextStateReason> AsynchronousAutomaton<State, Transition, NoNextStateReason>.move(transition: Transition): MovementResult<State, Transition, NoNextStateReason>
inline suspend fun <State, Transition, NoNextStateReason> AsynchronousAutomaton<State, Transition, NoNextStateReason>.move(transition: suspend (State) -> Transition): MovementResult<State, Transition, NoNextStateReason>
fun <State, Transition, NoNextStateReason> BlockingAutomaton<State, Transition, NoNextStateReason>.move(transition: Transition): MovementResult<State, Transition, NoNextStateReason>
inline fun <State, Transition, NoNextStateReason> BlockingAutomaton<State, Transition, NoNextStateReason>.move(transition: (State) -> Transition): MovementResult<State, Transition, NoNextStateReason>
suspend fun <State, Transition, NoNextStateReason> SuspendAutomaton<State, Transition, NoNextStateReason>.move(transition: Transition): MovementResult<State, Transition, NoNextStateReason>
inline suspend fun <State, Transition, NoNextStateReason> SuspendAutomaton<State, Transition, NoNextStateReason>.move(transition: suspend (State) -> Transition): MovementResult<State, Transition, NoNextStateReason>
fun <State, Transition, NoNextStateReason> SynchronousAutomaton<State, Transition, NoNextStateReason>.move(transition: Transition): MovementResult<State, Transition, NoNextStateReason>
inline fun <State, Transition, NoNextStateReason> SynchronousAutomaton<State, Transition, NoNextStateReason>.move(transition: (State) -> Transition): MovementResult<State, Transition, NoNextStateReason>
Link copied to clipboard
inline suspend fun <State, Transition, NoNextStateReason, Computation> AsynchronousAutomaton<State, Transition, NoNextStateReason>.moveAndCompute(transition: suspend (State) -> TransitionAndComputation<Transition, Computation>): MovementAndComputationResult<State, Transition, NoNextStateReason, Computation>
inline fun <State, Transition, NoNextStateReason, Computation> BlockingAutomaton<State, Transition, NoNextStateReason>.moveAndCompute(transition: (State) -> TransitionAndComputation<Transition, Computation>): MovementAndComputationResult<State, Transition, NoNextStateReason, Computation>
inline suspend fun <State, Transition, NoNextStateReason, Computation> SuspendAutomaton<State, Transition, NoNextStateReason>.moveAndCompute(transition: suspend (State) -> TransitionAndComputation<Transition, Computation>): MovementAndComputationResult<State, Transition, NoNextStateReason, Computation>
inline fun <State, Transition, NoNextStateReason, Computation> SynchronousAutomaton<State, Transition, NoNextStateReason>.moveAndCompute(transition: (State) -> TransitionAndComputation<Transition, Computation>): MovementAndComputationResult<State, Transition, NoNextStateReason, Computation>
Link copied to clipboard
suspend fun <State, Transition, NoTransitionReason, NoNextStateReason> AsynchronousAutomaton<State, Transition, NoNextStateReason>.moveMaybe(transition: TransitionOrReason<Transition, NoTransitionReason>): MovementMaybeResult<State, Transition, NoTransitionReason, NoNextStateReason>
inline suspend fun <State, Transition, NoTransitionReason, NoNextStateReason> AsynchronousAutomaton<State, Transition, NoNextStateReason>.moveMaybe(transition: suspend (State) -> TransitionOrReason<Transition, NoTransitionReason>): MovementMaybeResult<State, Transition, NoTransitionReason, NoNextStateReason>
fun <State, Transition, NoTransitionReason, NoNextStateReason> BlockingAutomaton<State, Transition, NoNextStateReason>.moveMaybe(transition: TransitionOrReason<Transition, NoTransitionReason>): MovementMaybeResult<State, Transition, NoTransitionReason, NoNextStateReason>
inline fun <State, Transition, NoTransitionReason, NoNextStateReason> BlockingAutomaton<State, Transition, NoNextStateReason>.moveMaybe(transition: (State) -> TransitionOrReason<Transition, NoTransitionReason>): MovementMaybeResult<State, Transition, NoTransitionReason, NoNextStateReason>
suspend fun <State, Transition, NoTransitionReason, NoNextStateReason> SuspendAutomaton<State, Transition, NoNextStateReason>.moveMaybe(transition: TransitionOrReason<Transition, NoTransitionReason>): MovementMaybeResult<State, Transition, NoTransitionReason, NoNextStateReason>
inline suspend fun <State, Transition, NoTransitionReason, NoNextStateReason> SuspendAutomaton<State, Transition, NoNextStateReason>.moveMaybe(transition: suspend (State) -> TransitionOrReason<Transition, NoTransitionReason>): MovementMaybeResult<State, Transition, NoTransitionReason, NoNextStateReason>
fun <State, Transition, NoTransitionReason, NoNextStateReason> SynchronousAutomaton<State, Transition, NoNextStateReason>.moveMaybe(transition: TransitionOrReason<Transition, NoTransitionReason>): MovementMaybeResult<State, Transition, NoTransitionReason, NoNextStateReason>
inline fun <State, Transition, NoTransitionReason, NoNextStateReason> SynchronousAutomaton<State, Transition, NoNextStateReason>.moveMaybe(transition: (State) -> TransitionOrReason<Transition, NoTransitionReason>): MovementMaybeResult<State, Transition, NoTransitionReason, NoNextStateReason>
Link copied to clipboard
inline suspend fun <State, Transition, NoTransitionReason, NoNextStateReason, Computation> AsynchronousAutomaton<State, Transition, NoNextStateReason>.moveMaybeAndCompute(transition: suspend (State) -> TransitionOrReasonAndComputation<Transition, NoTransitionReason, Computation>): MovementMaybeAndComputationResult<State, Transition, NoTransitionReason, NoNextStateReason, Computation>
inline fun <State, Transition, NoTransitionReason, NoNextStateReason, Computation> BlockingAutomaton<State, Transition, NoNextStateReason>.moveMaybeAndCompute(transition: (State) -> TransitionOrReasonAndComputation<Transition, NoTransitionReason, Computation>): MovementMaybeAndComputationResult<State, Transition, NoTransitionReason, NoNextStateReason, Computation>
inline suspend fun <State, Transition, NoTransitionReason, NoNextStateReason, Computation> SuspendAutomaton<State, Transition, NoNextStateReason>.moveMaybeAndCompute(transition: suspend (State) -> TransitionOrReasonAndComputation<Transition, NoTransitionReason, Computation>): MovementMaybeAndComputationResult<State, Transition, NoTransitionReason, NoNextStateReason, Computation>
inline fun <State, Transition, NoTransitionReason, NoNextStateReason, Computation> SynchronousAutomaton<State, Transition, NoNextStateReason>.moveMaybeAndCompute(transition: (State) -> TransitionOrReasonAndComputation<Transition, NoTransitionReason, Computation>): MovementMaybeAndComputationResult<State, Transition, NoTransitionReason, NoNextStateReason, Computation>
Link copied to clipboard
inline fun <State, Transition, NoNextStateReason> SuspendAutomaton(initialState: State, crossinline checkTransition: suspend SuspendAutomaton<State, Transition, NoNextStateReason>.(previousState: State, transition: Transition) -> CheckResult<State, NoNextStateReason>, crossinline onTransition: suspend SuspendAutomaton<State, Transition, NoNextStateReason>.(previousState: State, transition: Transition, nextState: State) -> Unit = { _, _, _ -> }): SuspendAutomaton<State, Transition, NoNextStateReason>
Link copied to clipboard
inline fun <State, Transition, NoNextStateReason> SynchronousAutomaton(initialState: State, crossinline checkTransition: SynchronousAutomaton<State, Transition, NoNextStateReason>.(previousState: State, transition: Transition) -> CheckResult<State, NoNextStateReason>, crossinline onTransition: SynchronousAutomaton<State, Transition, NoNextStateReason>.(previousState: State, transition: Transition, nextState: State) -> Unit = { _, _, _ -> }): SynchronousAutomaton<State, Transition, NoNextStateReason>