Choreo.Sequence.Analysis (Choreo v0.9.0)

Copy Markdown View Source

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

isolated_participants(seq)

@spec isolated_participants(Choreo.Sequence.t()) :: [atom()]

Returns participants that never send or receive a message.

missing_labels(seq)

@spec missing_labels(Choreo.Sequence.t()) :: [{:error, String.t()}]

Returns messages that are missing labels.

unbalanced_activations(sequence)

@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.

unclosed_fragments(sequence)

@spec unclosed_fragments(Choreo.Sequence.t()) :: [{:error, String.t()}]

Detects fragments that were opened but never closed.

unknown_participants(seq)

@spec unknown_participants(Choreo.Sequence.t()) :: [{:error, String.t()}]

Returns events that reference unknown participants.

validate(seq)

@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.