Analysis helpers for Choreo.Sequence diagrams.
Summary
Functions
Returns participants that never send or receive a message.
Returns messages that are missing labels.
Detects unbalanced activation boxes.
Detects fragments that were opened but never closed.
Returns events that reference unknown participants.
Validates the sequence diagram and returns a list of issues.
Functions
@spec isolated_participants(Choreo.Sequence.t()) :: [atom()]
Returns participants that never send or receive a message.
@spec missing_labels(Choreo.Sequence.t()) :: [{:error, String.t()}]
Returns messages that are missing labels.
@spec unbalanced_activations(Choreo.Sequence.t()) :: [{:warning, String.t()}]
Detects unbalanced activation boxes.
Returns {participant, imbalance} where imbalance is positive if there
are more activates than deactivates and negative if there are more
deactivates than activates.
@spec unclosed_fragments(Choreo.Sequence.t()) :: [{:error, String.t()}]
Detects fragments that were opened but never closed.
@spec unknown_participants(Choreo.Sequence.t()) :: [{:error, String.t()}]
Returns events that reference unknown participants.
@spec validate(Choreo.Sequence.t()) :: [{:error | :warning, String.t()}]
Validates the sequence diagram and returns a list of issues.
Each issue is a tuple of {severity, message} where severity is
:error or :warning.