merman-core 0.8.0-alpha.5

Mermaid parser + semantic model (headless; parity-focused).
Documentation
// This file is @generated by `cargo run -p xtask -- gen-editor-token-descriptor`.
// Do not edit it directly; edit `editor-language/token-descriptor-v1.json` instead.

/// Grammar-owned validation policy for renaming an entity occurrence.
#[derive(
    Debug,
    Clone,
    Copy,
    Default,
    PartialEq,
    Eq,
    PartialOrd,
    Ord,
    Hash,
    serde::Serialize,
    serde::Deserialize,
)]
pub enum EditorRenamePolicy {
    /// The symbol is not an addressable rename target.
    #[serde(rename = "none")]
    None,
    /// Mermaid's common identifier form: Unicode alphanumeric characters, `_`, or `-`.
    #[default]
    #[serde(rename = "identifier")]
    Identifier,
    /// Dot-separated ASCII identifiers.
    #[serde(rename = "qualified_identifier")]
    QualifiedIdentifier,
    /// Event Modeling `EM_ID`: an ASCII identifier beginning with a letter or `_`.
    #[serde(rename = "event_modeling_id")]
    EventModelingId,
    /// Event Modeling frame id: one to three ASCII digits.
    #[serde(rename = "event_modeling_frame_id")]
    EventModelingFrameId,
    /// A Flowchart node id as accepted by the Flowchart lexer.
    #[serde(rename = "flowchart_node_id")]
    FlowchartNodeId,
    /// A GitGraph unquoted `REFERENCE` token.
    #[serde(rename = "git_graph_reference")]
    GitGraphReference,
    /// An Architecture entity id, excluding reserved layout keywords.
    #[serde(rename = "architecture_identifier")]
    ArchitectureIdentifier,
    /// A Railroad IR rule identifier, excluding expression constructors.
    #[serde(rename = "railroad_ir_rule")]
    RailroadIrRule,
    /// An EBNF Railroad rule identifier.
    #[serde(rename = "railroad_ebnf_rule")]
    RailroadEbnfRule,
    /// A PEG Railroad rule identifier.
    #[serde(rename = "railroad_peg_rule")]
    RailroadPegRule,
    /// An ABNF rule identifier.
    #[serde(rename = "railroad_abnf_rule")]
    RailroadAbnfRule,
}

impl EditorRenamePolicy {
    pub const ALL: [Self; 12] = [
        Self::None,
        Self::Identifier,
        Self::QualifiedIdentifier,
        Self::EventModelingId,
        Self::EventModelingFrameId,
        Self::FlowchartNodeId,
        Self::GitGraphReference,
        Self::ArchitectureIdentifier,
        Self::RailroadIrRule,
        Self::RailroadEbnfRule,
        Self::RailroadPegRule,
        Self::RailroadAbnfRule,
    ];

    pub const IDS: [&'static str; 12] = [
        "none",
        "identifier",
        "qualified_identifier",
        "event_modeling_id",
        "event_modeling_frame_id",
        "flowchart_node_id",
        "git_graph_reference",
        "architecture_identifier",
        "railroad_ir_rule",
        "railroad_ebnf_rule",
        "railroad_peg_rule",
        "railroad_abnf_rule",
    ];

    pub const fn as_str(self) -> &'static str {
        match self {
            Self::None => "none",
            Self::Identifier => "identifier",
            Self::QualifiedIdentifier => "qualified_identifier",
            Self::EventModelingId => "event_modeling_id",
            Self::EventModelingFrameId => "event_modeling_frame_id",
            Self::FlowchartNodeId => "flowchart_node_id",
            Self::GitGraphReference => "git_graph_reference",
            Self::ArchitectureIdentifier => "architecture_identifier",
            Self::RailroadIrRule => "railroad_ir_rule",
            Self::RailroadEbnfRule => "railroad_ebnf_rule",
            Self::RailroadPegRule => "railroad_peg_rule",
            Self::RailroadAbnfRule => "railroad_abnf_rule",
        }
    }
}