scamper/validation
Configuration validation, deadlock detection, and reachability analysis.
Types
Warnings produced by config validation.
pub type ValidationWarning(state) {
UnreachableState(state: state)
TransitionFromFinalState(state: state)
MissingFallback(from: state)
}
Constructors
-
UnreachableState(state: state)A state has no incoming transitions (unreachable from initial state).
-
TransitionFromFinalState(state: state)A final state has outgoing transitions defined (which will never execute).
-
MissingFallback(from: state)A group of guarded transitions has no fallback (guard = None) rule.
Values
pub fn detect_deadlocks(
config: config.Config(state, context, event),
) -> List(state)
Find non-final states that have no outgoing transitions (deadlock states).
pub fn reachable_states(
config: config.Config(state, context, event),
initial_state: state,
) -> List(state)
Find all states reachable from the initial state via BFS. Ignores guards (assumes all guards could pass).
pub fn validate_config(
config: config.Config(state, context, event),
initial_state: state,
) -> Result(Nil, List(ValidationWarning(state)))
Validate a config for common issues. Returns Ok(Nil) if no warnings, or Error with a list of warnings.