1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
use std::any::Any; use std::ops::Range; use crate::*; use std::fmt::Debug; /// A `Parse` may use a `Parser` to yield an associated `Target` type. pub trait Parse : Debug + Clone + Any { /// The type returned from parsing `Self`. type Target; /// What a parser will call to advance itself. fn parse_from(parser: &mut Parser) -> Result<Self::Target>; }