pegy 0.1.2

A derive based parser generator.
Documentation
use alloc::borrow::Cow;

#[derive(Debug, Default, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub struct Span(pub usize, pub usize);

impl Span {
    pub const fn new(start: usize, end: usize) -> Self {
        Self(start, end)
    }
}

#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct Error {
    pub msg: Cow<'static, str>,
    pub span: Span,
}

impl Default for Error {
    fn default() -> Self {
        Self {
            msg: Cow::Borrowed("unknown"),
            span: Span(0, 0),
        }
    }
}

impl Error {
    pub fn new<S: Into<Cow<'static, str>>>(span: Span, msg: S) -> Error {
        Error {
            msg: msg.into(),
            span: span,
        }
    }
}