limu 0.2.0

A diagram layout engine. It reads Mermaid and leaves the drawing to your program.
Documentation
//! The tokens of a sequence diagram, as Pele's tokens.ts has them.

/// A token's type, Pele's T. The names are Pele's as they are, as the grammar's are.
#[allow(
    non_camel_case_types,
    clippy::upper_case_acronyms,
    clippy::enum_variant_names
)]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub(crate) enum T {
    END,
    ERROR,
    INVALID,
    NEWLINE,
    SD,
    create,
    r#box,
    restOfLine,
    end,
    autonumber,
    NUM,
    off,
    activate,
    deactivate,
    title,
    legacy_title,
    acc_title,
    acc_title_value,
    acc_descr,
    acc_descr_value,
    acc_descr_multiline_value,
    r#loop,
    rect,
    opt,
    alt,
    par,
    par_over,
    critical,
    r#break,
    option,
    and,
    r#else,
    participant,
    AS,
    participant_actor,
    destroy,
    note,
    over,
    links,
    link,
    properties,
    details,
    COMMA,
    left_of,
    right_of,
    PLUS,
    MINUS,
    CENTRAL,
    ACTOR,
    CONFIG_START,
    CONFIG_CONTENT,
    CONFIG_END,
    TXT,
    SOLID_OPEN_ARROW,
    DOTTED_OPEN_ARROW,
    SOLID_ARROW,
    BIDIRECTIONAL_SOLID_ARROW,
    DOTTED_ARROW,
    BIDIRECTIONAL_DOTTED_ARROW,
    SOLID_CROSS,
    DOTTED_CROSS,
    SOLID_POINT,
    DOTTED_POINT,
    SOLID_ARROW_TOP,
    SOLID_ARROW_BOTTOM,
    STICK_ARROW_TOP,
    STICK_ARROW_BOTTOM,
    SOLID_ARROW_TOP_DOTTED,
    SOLID_ARROW_BOTTOM_DOTTED,
    STICK_ARROW_TOP_DOTTED,
    STICK_ARROW_BOTTOM_DOTTED,
    SOLID_ARROW_TOP_REVERSE,
    SOLID_ARROW_BOTTOM_REVERSE,
    STICK_ARROW_TOP_REVERSE,
    STICK_ARROW_BOTTOM_REVERSE,
    SOLID_ARROW_TOP_REVERSE_DOTTED,
    SOLID_ARROW_BOTTOM_REVERSE_DOTTED,
    STICK_ARROW_TOP_REVERSE_DOTTED,
    STICK_ARROW_BOTTOM_REVERSE_DOTTED,
}

impl T {
    /// The token's name, as Mermaid's grammar spells it in its errors, Pele's TOKEN_NAMES.
    pub(crate) fn name(self) -> &'static str {
        TOKEN_NAMES[self as usize]
    }
}

const TOKEN_NAMES: [&str; T::STICK_ARROW_BOTTOM_REVERSE_DOTTED as usize + 1] = [
    "$end",
    "INVALID",
    "INVALID",
    "NEWLINE",
    "SD",
    "create",
    "box",
    "restOfLine",
    "end",
    "autonumber",
    "NUM",
    "off",
    "activate",
    "deactivate",
    "title",
    "legacy_title",
    "acc_title",
    "acc_title_value",
    "acc_descr",
    "acc_descr_value",
    "acc_descr_multiline_value",
    "loop",
    "rect",
    "opt",
    "alt",
    "par",
    "par_over",
    "critical",
    "break",
    "option",
    "and",
    "else",
    "participant",
    "AS",
    "participant_actor",
    "destroy",
    "note",
    "over",
    "links",
    "link",
    "properties",
    "details",
    ",",
    "left_of",
    "right_of",
    "+",
    "-",
    "()",
    "ACTOR",
    "CONFIG_START",
    "CONFIG_CONTENT",
    "CONFIG_END",
    "TXT",
    "SOLID_OPEN_ARROW",
    "DOTTED_OPEN_ARROW",
    "SOLID_ARROW",
    "BIDIRECTIONAL_SOLID_ARROW",
    "DOTTED_ARROW",
    "BIDIRECTIONAL_DOTTED_ARROW",
    "SOLID_CROSS",
    "DOTTED_CROSS",
    "SOLID_POINT",
    "DOTTED_POINT",
    "SOLID_ARROW_TOP",
    "SOLID_ARROW_BOTTOM",
    "STICK_ARROW_TOP",
    "STICK_ARROW_BOTTOM",
    "SOLID_ARROW_TOP_DOTTED",
    "SOLID_ARROW_BOTTOM_DOTTED",
    "STICK_ARROW_TOP_DOTTED",
    "STICK_ARROW_BOTTOM_DOTTED",
    "SOLID_ARROW_TOP_REVERSE",
    "SOLID_ARROW_BOTTOM_REVERSE",
    "STICK_ARROW_TOP_REVERSE",
    "STICK_ARROW_BOTTOM_REVERSE",
    "SOLID_ARROW_TOP_REVERSE_DOTTED",
    "SOLID_ARROW_BOTTOM_REVERSE_DOTTED",
    "STICK_ARROW_TOP_REVERSE_DOTTED",
    "STICK_ARROW_BOTTOM_REVERSE_DOTTED",
];