///|
/// Exports the FSM configuration as a Mermaid stateDiagram string.
pub fn[S : Show, E : Show, Ctx] to_mermaid(
builder : Builder[S, E, Ctx],
) -> String {
let mut diagram = "stateDiagram-v2\n"
for t in builder.config.transitions {
let from_str = "\{t.from}"
let to_str = "\{t.to}"
let event_str = "\{t.event}"
let guard_suffix = match t.guard_cond {
Some(_) => " [guard]"
None => ""
}
let action_suffix = match t.action {
Some(_) => " [action]"
None => ""
}
diagram = diagram +
" " +
from_str +
" --> " +
to_str +
" : " +
event_str +
guard_suffix +
action_suffix +
"\n"
}
diagram
}