rsaeb 0.10.1

A no_std + alloc interpreter for A=B ordered rewrite programs.
Documentation
/// Reserved multi-byte syntax tokens recognized by parser phases.
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub(crate) enum SyntaxToken {
    /// `(once)` left-side repeat modifier.
    Once,
    /// `(start)` anchor or right-side action token.
    Start,
    /// `(end)` anchor or right-side action token.
    End,
    /// `(return)` right-side action token.
    Return,
}

impl SyntaxToken {
    /// Returns the stored bytes.
    pub(crate) const fn bytes(self) -> &'static [u8] {
        match self {
            Self::Once => b"(once)",
            Self::Start => b"(start)",
            Self::End => b"(end)",
            Self::Return => b"(return)",
        }
    }

    /// Returns the runtime state length in bytes.
    pub(crate) const fn len(self) -> usize {
        self.bytes().len()
    }
}