use crate::reader::SliceReader;
pub trait ParseFrom<'a>: Sized {
type Error;
fn parse(cur: &mut SliceReader<'a>) -> Result<Self, Self::Error>;
}
pub trait ParseFromWithOneInput<'a, I1>: Sized {
type Error;
fn parse(cur: &mut SliceReader<'a>, i1: I1) -> Result<Self, Self::Error>;
}
pub trait ParseFromWithTwoInputs<'a, I1, I2>: Sized {
type Error;
fn parse(cur: &mut SliceReader<'a>, i1: I1, i2: I2) -> Result<Self, Self::Error>;
}
pub trait ParseFromWithThreeInputs<'a, I1, I2, I3>: Sized {
type Error;
fn parse(cur: &mut SliceReader<'a>, i1: I1, i2: I2, i3: I3) -> Result<Self, Self::Error>;
}
pub trait ParseFromWithMut<'a, Ctx>: Sized {
type Error;
fn parse(cur: &mut SliceReader<'a>, ctx: &mut Ctx) -> Result<Self, Self::Error>;
}