pub trait Parse<'i> {
type Input: 'i;
type Output;
type Error;
// Required methods
fn parse(
&mut self,
input: Self::Input,
) -> Result<Streaming<Parsed<Self::Output>>, Self::Error>;
fn parse_eof(
&mut self,
input: Self::Input,
) -> Result<Parsed<Self::Output>, Self::Error>;
}