use crate::{ParseResult, ParseState};
use core::ops::Range;
pub trait Parse
where
Self: Sized,
{
fn parse(input: ParseState) -> ParseResult<Self>;
fn parse_text(input: &str) -> ParseResult<Self> {
Self::parse(ParseState::new(input))
}
fn get_range(&self) -> Range<usize>;
fn get_range32(&self) -> Range<u32> {
let range = self.get_range();
Range { start: range.start as u32, end: range.end as u32 }
}
}