pub use crate::timeline::sequence::model::{
ArrowHead, BlockDividerKind, BlockKind, LineStyle, NotePlacement, ParticipantKind,
};
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum ActivationModifier {
Activate,
Deactivate,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum AutonumberMode {
On {
start: Option<usize>,
step: Option<usize>,
},
Off,
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum SequenceStatement {
Participant {
kind: ParticipantKind,
id: String,
alias: Option<String>,
},
CreateParticipant {
kind: ParticipantKind,
id: String,
alias: Option<String>,
},
ParticipantBoxStart {
color: Option<String>,
label: Option<String>,
},
ParticipantBoxEnd,
Message {
from: String,
to: String,
line_style: LineStyle,
arrow_head: ArrowHead,
text: String,
activate: Option<ActivationModifier>,
},
Note {
placement: NotePlacement,
participants: Vec<String>,
text: String,
},
Activate { participant: String },
Deactivate { participant: String },
DestroyParticipant { participant: String },
BlockStart { kind: BlockKind, label: String },
BlockDivider {
kind: BlockDividerKind,
label: String,
},
BlockEnd,
Autonumber(AutonumberMode),
Title(String),
}