Trait Parser

Source
pub trait Parser<I: InputType, O, E: ParserExtras<I>> {
Show 17 methods // Required methods fn parse<'parse>( &self, input: Input<'parse, I, E>, ) -> IResult<'parse, I, E, O>; fn check<'parse>( &self, input: Input<'parse, I, E>, ) -> IResult<'parse, I, E, ()>; // Provided methods fn parse_from<'parse>( &self, input: &'parse I, ) -> ParseResult<'parse, I, O, E> where E: ParserExtras<I, Context = ()> { ... } fn or<P: Parser<I, O, E>>(self, other: P) -> Or<Self, P> where Self: Sized { ... } fn map<U, F: Fn(O) -> U>(self, mapper: F) -> Map<Self, O, F, U> where Self: Sized { ... } fn to<U>(self, value: U) -> To<Self, O, U> where Self: Sized { ... } fn ignored(self) -> Ignored<Self, O> where Self: Sized { ... } fn try_map<F: Fn(U) -> Result<U, E::Error>, U>( self, f: F, ) -> TryMap<Self, F, O, U> where Self: Sized { ... } fn try_map_with_span<F: Fn(U, Range<I::Offset>) -> Result<U, E::Error>, U>( self, f: F, ) -> TryMapWithSpan<Self, F, O, U> where Self: Sized { ... } fn filter<F: Fn(&O) -> bool>(self, f: F) -> FilterParser<Self, F, O> where Self: Sized { ... } fn repeated(self) -> Repeated<Self, O, Vec<O>> where Self: Sized { ... } fn repeated_custom<V: FromIterator<O>>(self) -> Repeated<Self, O, V> where Self: Sized { ... } fn slice<'a>(self) -> Slice<'a, I, E, O, Self> where I: SliceInput<'a>, Self: Sized { ... } fn then<O2, P: Parser<I, O2, E>>( self, other: P, ) -> Then<O, O2, Self, P, true, false> where Self: Sized { ... } fn ignore_then<O2, P: Parser<I, O2, E>>( self, other: P, ) -> Then<O, O2, Self, P, false, true> where Self: Sized { ... } fn then_ignore<O2, P: Parser<I, O2, E>>( self, other: P, ) -> Then<O, O2, Self, P, false, false> where Self: Sized { ... } fn optional(self) -> Maybe<Self> where Self: Sized { ... }
}

Required Methods§

Source

fn parse<'parse>(&self, input: Input<'parse, I, E>) -> IResult<'parse, I, E, O>

§Errors

Returns an error if the parser failed.

Source

fn check<'parse>(&self, input: Input<'parse, I, E>) -> IResult<'parse, I, E, ()>

§Errors

Returns an error if the parser failed.

Provided Methods§

Source

fn parse_from<'parse>(&self, input: &'parse I) -> ParseResult<'parse, I, O, E>
where E: ParserExtras<I, Context = ()>,

Source

fn or<P: Parser<I, O, E>>(self, other: P) -> Or<Self, P>
where Self: Sized,

Source

fn map<U, F: Fn(O) -> U>(self, mapper: F) -> Map<Self, O, F, U>
where Self: Sized,

Transforms this parser’s output with the mapper function. The mapper function cannot return an error. If you want to, consider using Parser::try_map

§Example
let input = "hisnameisjuan";

#[aott::derive::parser]
fn parser(input: &str) -> (&'a str, &'a str) {
    tuple((
        choice((just("his"), just("her"))),
        just("name"), just("is"),
        any.repeated().slice(),
        end
    )).map(|(pronoun, _, _, name, _)| (pronoun, name)).parse(input)
}
let (pronoun, name) = parser.parse_from(&input).into_result().unwrap();
assert_eq!(pronoun, "his");
assert_eq!(name, "juan");
Source

fn to<U>(self, value: U) -> To<Self, O, U>
where Self: Sized,

Source

fn ignored(self) -> Ignored<Self, O>
where Self: Sized,

Source

fn try_map<F: Fn(U) -> Result<U, E::Error>, U>( self, f: F, ) -> TryMap<Self, F, O, U>
where Self: Sized,

Source

fn try_map_with_span<F: Fn(U, Range<I::Offset>) -> Result<U, E::Error>, U>( self, f: F, ) -> TryMapWithSpan<Self, F, O, U>
where Self: Sized,

Source

fn filter<F: Fn(&O) -> bool>(self, f: F) -> FilterParser<Self, F, O>
where Self: Sized,

Source

fn repeated(self) -> Repeated<Self, O, Vec<O>>
where Self: Sized,

§Example
use aott::text::Char;
let parser = filter::<&str, extra::Err<&str>>(|c: &char| c.is_ident_start()).then(filter(|c: &char| c.is_ident_continue()).repeated());
assert_eq!(parser.parse_from(&"hello").into_result(), Ok(('h', "ello".chars().collect())));
Source

fn repeated_custom<V: FromIterator<O>>(self) -> Repeated<Self, O, V>
where Self: Sized,

Source

fn slice<'a>(self) -> Slice<'a, I, E, O, Self>
where I: SliceInput<'a>, Self: Sized,

Source

fn then<O2, P: Parser<I, O2, E>>( self, other: P, ) -> Then<O, O2, Self, P, true, false>
where Self: Sized,

Source

fn ignore_then<O2, P: Parser<I, O2, E>>( self, other: P, ) -> Then<O, O2, Self, P, false, true>
where Self: Sized,

Source

fn then_ignore<O2, P: Parser<I, O2, E>>( self, other: P, ) -> Then<O, O2, Self, P, false, false>
where Self: Sized,

Source

fn optional(self) -> Maybe<Self>
where Self: Sized,

Implementations on Foreign Types§

Source§

impl<I, O, E, T> Parser<I, O, E> for Rc<T>
where I: InputType, E: ParserExtras<I>, T: Parser<I, O, E>,

Source§

fn check<'parse>(&self, input: Input<'parse, I, E>) -> IResult<'parse, I, E, ()>

Source§

fn parse<'parse>(&self, input: Input<'parse, I, E>) -> IResult<'parse, I, E, O>

Source§

impl<I, O, E, T> Parser<I, O, E> for Arc<T>
where I: InputType, E: ParserExtras<I>, T: Parser<I, O, E>,

Source§

fn check<'parse>(&self, input: Input<'parse, I, E>) -> IResult<'parse, I, E, ()>

Source§

fn parse<'parse>(&self, input: Input<'parse, I, E>) -> IResult<'parse, I, E, O>

Implementors§

Source§

impl<'a, I: InputType + SliceInput<'a>, E: ParserExtras<I>, O, P: Parser<I, O, E>> Parser<I, <I as SliceInput<'a>>::Slice, E> for Slice<'a, I, E, O, P>

Source§

impl<'a, I: InputType + StrInput<'a, C>, E: ParserExtras<I>, C: Char, O, A: Parser<I, O, E>> Parser<I, O, E> for Padded<A, C>

Source§

impl<'a, I: InputType, O, E: ParserExtras<I>> Parser<I, O, E> for Recursive<'a, I, O, E>

Source§

impl<'b, I, O, E> Parser<I, O, E> for Boxed<'b, I, O, E>
where I: InputType, E: ParserExtras<I>,

Source§

impl<A, B, I: InputType, O, E: ParserExtras<I>> Parser<I, O, E> for Or<A, B>
where A: Parser<I, O, E>, B: Parser<I, O, E>,

Source§

impl<I, E, A_, B_, C_, D_, E_, F_, G_, H_, I_, J_, K_, L_, M_, N_, O_, P_, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_, O> Parser<I, O, E> for Choice<(A_, B_, C_, D_, E_, F_, G_, H_, I_, J_, K_, L_, M_, N_, O_, P_, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_)>
where I: InputType, E: ParserExtras<I>, A_: Parser<I, O, E>, B_: Parser<I, O, E>, C_: Parser<I, O, E>, D_: Parser<I, O, E>, E_: Parser<I, O, E>, F_: Parser<I, O, E>, G_: Parser<I, O, E>, H_: Parser<I, O, E>, I_: Parser<I, O, E>, J_: Parser<I, O, E>, K_: Parser<I, O, E>, L_: Parser<I, O, E>, M_: Parser<I, O, E>, N_: Parser<I, O, E>, O_: Parser<I, O, E>, P_: Parser<I, O, E>, Q_: Parser<I, O, E>, R_: Parser<I, O, E>, S_: Parser<I, O, E>, T_: Parser<I, O, E>, U_: Parser<I, O, E>, V_: Parser<I, O, E>, W_: Parser<I, O, E>, X_: Parser<I, O, E>, Y_: Parser<I, O, E>, Z_: Parser<I, O, E>,

Source§

impl<I, E, A_, B_, C_, D_, E_, F_, G_, H_, I_, J_, K_, L_, M_, N_, O_, P_, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_, OA, OB, OC, OD, OE, OF, OG, OH, OI, OJ, OK, OL, OM, ON, OO, OP, OQ, OR, OS, OT, OU, OV, OW, OX, OY, OZ> Parser<I, (OA, OB, OC, OD, OE, OF, OG, OH, OI, OJ, OK, OL, OM, ON, OO, OP, OQ, OR, OS, OT, OU, OV, OW, OX, OY, OZ), E> for Tuple<(A_, B_, C_, D_, E_, F_, G_, H_, I_, J_, K_, L_, M_, N_, O_, P_, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_)>
where I: InputType, E: ParserExtras<I>, A_: Parser<I, OA, E>, B_: Parser<I, OB, E>, C_: Parser<I, OC, E>, D_: Parser<I, OD, E>, E_: Parser<I, OE, E>, F_: Parser<I, OF, E>, G_: Parser<I, OG, E>, H_: Parser<I, OH, E>, I_: Parser<I, OI, E>, J_: Parser<I, OJ, E>, K_: Parser<I, OK, E>, L_: Parser<I, OL, E>, M_: Parser<I, OM, E>, N_: Parser<I, ON, E>, O_: Parser<I, OO, E>, P_: Parser<I, OP, E>, Q_: Parser<I, OQ, E>, R_: Parser<I, OR, E>, S_: Parser<I, OS, E>, T_: Parser<I, OT, E>, U_: Parser<I, OU, E>, V_: Parser<I, OV, E>, W_: Parser<I, OW, E>, X_: Parser<I, OX, E>, Y_: Parser<I, OY, E>, Z_: Parser<I, OZ, E>,

Source§

impl<I, E, B_, C_, D_, E_, F_, G_, H_, I_, J_, K_, L_, M_, N_, O_, P_, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_, O> Parser<I, O, E> for Choice<(B_, C_, D_, E_, F_, G_, H_, I_, J_, K_, L_, M_, N_, O_, P_, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_)>
where I: InputType, E: ParserExtras<I>, B_: Parser<I, O, E>, C_: Parser<I, O, E>, D_: Parser<I, O, E>, E_: Parser<I, O, E>, F_: Parser<I, O, E>, G_: Parser<I, O, E>, H_: Parser<I, O, E>, I_: Parser<I, O, E>, J_: Parser<I, O, E>, K_: Parser<I, O, E>, L_: Parser<I, O, E>, M_: Parser<I, O, E>, N_: Parser<I, O, E>, O_: Parser<I, O, E>, P_: Parser<I, O, E>, Q_: Parser<I, O, E>, R_: Parser<I, O, E>, S_: Parser<I, O, E>, T_: Parser<I, O, E>, U_: Parser<I, O, E>, V_: Parser<I, O, E>, W_: Parser<I, O, E>, X_: Parser<I, O, E>, Y_: Parser<I, O, E>, Z_: Parser<I, O, E>,

Source§

impl<I, E, B_, C_, D_, E_, F_, G_, H_, I_, J_, K_, L_, M_, N_, O_, P_, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_, OB, OC, OD, OE, OF, OG, OH, OI, OJ, OK, OL, OM, ON, OO, OP, OQ, OR, OS, OT, OU, OV, OW, OX, OY, OZ> Parser<I, (OB, OC, OD, OE, OF, OG, OH, OI, OJ, OK, OL, OM, ON, OO, OP, OQ, OR, OS, OT, OU, OV, OW, OX, OY, OZ), E> for Tuple<(B_, C_, D_, E_, F_, G_, H_, I_, J_, K_, L_, M_, N_, O_, P_, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_)>
where I: InputType, E: ParserExtras<I>, B_: Parser<I, OB, E>, C_: Parser<I, OC, E>, D_: Parser<I, OD, E>, E_: Parser<I, OE, E>, F_: Parser<I, OF, E>, G_: Parser<I, OG, E>, H_: Parser<I, OH, E>, I_: Parser<I, OI, E>, J_: Parser<I, OJ, E>, K_: Parser<I, OK, E>, L_: Parser<I, OL, E>, M_: Parser<I, OM, E>, N_: Parser<I, ON, E>, O_: Parser<I, OO, E>, P_: Parser<I, OP, E>, Q_: Parser<I, OQ, E>, R_: Parser<I, OR, E>, S_: Parser<I, OS, E>, T_: Parser<I, OT, E>, U_: Parser<I, OU, E>, V_: Parser<I, OV, E>, W_: Parser<I, OW, E>, X_: Parser<I, OX, E>, Y_: Parser<I, OY, E>, Z_: Parser<I, OZ, E>,

Source§

impl<I, E, C_, D_, E_, F_, G_, H_, I_, J_, K_, L_, M_, N_, O_, P_, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_, O> Parser<I, O, E> for Choice<(C_, D_, E_, F_, G_, H_, I_, J_, K_, L_, M_, N_, O_, P_, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_)>
where I: InputType, E: ParserExtras<I>, C_: Parser<I, O, E>, D_: Parser<I, O, E>, E_: Parser<I, O, E>, F_: Parser<I, O, E>, G_: Parser<I, O, E>, H_: Parser<I, O, E>, I_: Parser<I, O, E>, J_: Parser<I, O, E>, K_: Parser<I, O, E>, L_: Parser<I, O, E>, M_: Parser<I, O, E>, N_: Parser<I, O, E>, O_: Parser<I, O, E>, P_: Parser<I, O, E>, Q_: Parser<I, O, E>, R_: Parser<I, O, E>, S_: Parser<I, O, E>, T_: Parser<I, O, E>, U_: Parser<I, O, E>, V_: Parser<I, O, E>, W_: Parser<I, O, E>, X_: Parser<I, O, E>, Y_: Parser<I, O, E>, Z_: Parser<I, O, E>,

Source§

impl<I, E, C_, D_, E_, F_, G_, H_, I_, J_, K_, L_, M_, N_, O_, P_, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_, OC, OD, OE, OF, OG, OH, OI, OJ, OK, OL, OM, ON, OO, OP, OQ, OR, OS, OT, OU, OV, OW, OX, OY, OZ> Parser<I, (OC, OD, OE, OF, OG, OH, OI, OJ, OK, OL, OM, ON, OO, OP, OQ, OR, OS, OT, OU, OV, OW, OX, OY, OZ), E> for Tuple<(C_, D_, E_, F_, G_, H_, I_, J_, K_, L_, M_, N_, O_, P_, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_)>
where I: InputType, E: ParserExtras<I>, C_: Parser<I, OC, E>, D_: Parser<I, OD, E>, E_: Parser<I, OE, E>, F_: Parser<I, OF, E>, G_: Parser<I, OG, E>, H_: Parser<I, OH, E>, I_: Parser<I, OI, E>, J_: Parser<I, OJ, E>, K_: Parser<I, OK, E>, L_: Parser<I, OL, E>, M_: Parser<I, OM, E>, N_: Parser<I, ON, E>, O_: Parser<I, OO, E>, P_: Parser<I, OP, E>, Q_: Parser<I, OQ, E>, R_: Parser<I, OR, E>, S_: Parser<I, OS, E>, T_: Parser<I, OT, E>, U_: Parser<I, OU, E>, V_: Parser<I, OV, E>, W_: Parser<I, OW, E>, X_: Parser<I, OX, E>, Y_: Parser<I, OY, E>, Z_: Parser<I, OZ, E>,

Source§

impl<I, E, D_, E_, F_, G_, H_, I_, J_, K_, L_, M_, N_, O_, P_, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_, O> Parser<I, O, E> for Choice<(D_, E_, F_, G_, H_, I_, J_, K_, L_, M_, N_, O_, P_, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_)>
where I: InputType, E: ParserExtras<I>, D_: Parser<I, O, E>, E_: Parser<I, O, E>, F_: Parser<I, O, E>, G_: Parser<I, O, E>, H_: Parser<I, O, E>, I_: Parser<I, O, E>, J_: Parser<I, O, E>, K_: Parser<I, O, E>, L_: Parser<I, O, E>, M_: Parser<I, O, E>, N_: Parser<I, O, E>, O_: Parser<I, O, E>, P_: Parser<I, O, E>, Q_: Parser<I, O, E>, R_: Parser<I, O, E>, S_: Parser<I, O, E>, T_: Parser<I, O, E>, U_: Parser<I, O, E>, V_: Parser<I, O, E>, W_: Parser<I, O, E>, X_: Parser<I, O, E>, Y_: Parser<I, O, E>, Z_: Parser<I, O, E>,

Source§

impl<I, E, D_, E_, F_, G_, H_, I_, J_, K_, L_, M_, N_, O_, P_, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_, OD, OE, OF, OG, OH, OI, OJ, OK, OL, OM, ON, OO, OP, OQ, OR, OS, OT, OU, OV, OW, OX, OY, OZ> Parser<I, (OD, OE, OF, OG, OH, OI, OJ, OK, OL, OM, ON, OO, OP, OQ, OR, OS, OT, OU, OV, OW, OX, OY, OZ), E> for Tuple<(D_, E_, F_, G_, H_, I_, J_, K_, L_, M_, N_, O_, P_, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_)>
where I: InputType, E: ParserExtras<I>, D_: Parser<I, OD, E>, E_: Parser<I, OE, E>, F_: Parser<I, OF, E>, G_: Parser<I, OG, E>, H_: Parser<I, OH, E>, I_: Parser<I, OI, E>, J_: Parser<I, OJ, E>, K_: Parser<I, OK, E>, L_: Parser<I, OL, E>, M_: Parser<I, OM, E>, N_: Parser<I, ON, E>, O_: Parser<I, OO, E>, P_: Parser<I, OP, E>, Q_: Parser<I, OQ, E>, R_: Parser<I, OR, E>, S_: Parser<I, OS, E>, T_: Parser<I, OT, E>, U_: Parser<I, OU, E>, V_: Parser<I, OV, E>, W_: Parser<I, OW, E>, X_: Parser<I, OX, E>, Y_: Parser<I, OY, E>, Z_: Parser<I, OZ, E>,

Source§

impl<I, E, E_, F_, G_, H_, I_, J_, K_, L_, M_, N_, O_, P_, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_, O> Parser<I, O, E> for Choice<(E_, F_, G_, H_, I_, J_, K_, L_, M_, N_, O_, P_, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_)>
where I: InputType, E: ParserExtras<I>, E_: Parser<I, O, E>, F_: Parser<I, O, E>, G_: Parser<I, O, E>, H_: Parser<I, O, E>, I_: Parser<I, O, E>, J_: Parser<I, O, E>, K_: Parser<I, O, E>, L_: Parser<I, O, E>, M_: Parser<I, O, E>, N_: Parser<I, O, E>, O_: Parser<I, O, E>, P_: Parser<I, O, E>, Q_: Parser<I, O, E>, R_: Parser<I, O, E>, S_: Parser<I, O, E>, T_: Parser<I, O, E>, U_: Parser<I, O, E>, V_: Parser<I, O, E>, W_: Parser<I, O, E>, X_: Parser<I, O, E>, Y_: Parser<I, O, E>, Z_: Parser<I, O, E>,

Source§

impl<I, E, E_, F_, G_, H_, I_, J_, K_, L_, M_, N_, O_, P_, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_, OE, OF, OG, OH, OI, OJ, OK, OL, OM, ON, OO, OP, OQ, OR, OS, OT, OU, OV, OW, OX, OY, OZ> Parser<I, (OE, OF, OG, OH, OI, OJ, OK, OL, OM, ON, OO, OP, OQ, OR, OS, OT, OU, OV, OW, OX, OY, OZ), E> for Tuple<(E_, F_, G_, H_, I_, J_, K_, L_, M_, N_, O_, P_, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_)>
where I: InputType, E: ParserExtras<I>, E_: Parser<I, OE, E>, F_: Parser<I, OF, E>, G_: Parser<I, OG, E>, H_: Parser<I, OH, E>, I_: Parser<I, OI, E>, J_: Parser<I, OJ, E>, K_: Parser<I, OK, E>, L_: Parser<I, OL, E>, M_: Parser<I, OM, E>, N_: Parser<I, ON, E>, O_: Parser<I, OO, E>, P_: Parser<I, OP, E>, Q_: Parser<I, OQ, E>, R_: Parser<I, OR, E>, S_: Parser<I, OS, E>, T_: Parser<I, OT, E>, U_: Parser<I, OU, E>, V_: Parser<I, OV, E>, W_: Parser<I, OW, E>, X_: Parser<I, OX, E>, Y_: Parser<I, OY, E>, Z_: Parser<I, OZ, E>,

Source§

impl<I, E, F_, G_, H_, I_, J_, K_, L_, M_, N_, O_, P_, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_, O> Parser<I, O, E> for Choice<(F_, G_, H_, I_, J_, K_, L_, M_, N_, O_, P_, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_)>
where I: InputType, E: ParserExtras<I>, F_: Parser<I, O, E>, G_: Parser<I, O, E>, H_: Parser<I, O, E>, I_: Parser<I, O, E>, J_: Parser<I, O, E>, K_: Parser<I, O, E>, L_: Parser<I, O, E>, M_: Parser<I, O, E>, N_: Parser<I, O, E>, O_: Parser<I, O, E>, P_: Parser<I, O, E>, Q_: Parser<I, O, E>, R_: Parser<I, O, E>, S_: Parser<I, O, E>, T_: Parser<I, O, E>, U_: Parser<I, O, E>, V_: Parser<I, O, E>, W_: Parser<I, O, E>, X_: Parser<I, O, E>, Y_: Parser<I, O, E>, Z_: Parser<I, O, E>,

Source§

impl<I, E, F_, G_, H_, I_, J_, K_, L_, M_, N_, O_, P_, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_, OF, OG, OH, OI, OJ, OK, OL, OM, ON, OO, OP, OQ, OR, OS, OT, OU, OV, OW, OX, OY, OZ> Parser<I, (OF, OG, OH, OI, OJ, OK, OL, OM, ON, OO, OP, OQ, OR, OS, OT, OU, OV, OW, OX, OY, OZ), E> for Tuple<(F_, G_, H_, I_, J_, K_, L_, M_, N_, O_, P_, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_)>
where I: InputType, E: ParserExtras<I>, F_: Parser<I, OF, E>, G_: Parser<I, OG, E>, H_: Parser<I, OH, E>, I_: Parser<I, OI, E>, J_: Parser<I, OJ, E>, K_: Parser<I, OK, E>, L_: Parser<I, OL, E>, M_: Parser<I, OM, E>, N_: Parser<I, ON, E>, O_: Parser<I, OO, E>, P_: Parser<I, OP, E>, Q_: Parser<I, OQ, E>, R_: Parser<I, OR, E>, S_: Parser<I, OS, E>, T_: Parser<I, OT, E>, U_: Parser<I, OU, E>, V_: Parser<I, OV, E>, W_: Parser<I, OW, E>, X_: Parser<I, OX, E>, Y_: Parser<I, OY, E>, Z_: Parser<I, OZ, E>,

Source§

impl<I, E, G_, H_, I_, J_, K_, L_, M_, N_, O_, P_, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_, O> Parser<I, O, E> for Choice<(G_, H_, I_, J_, K_, L_, M_, N_, O_, P_, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_)>
where I: InputType, E: ParserExtras<I>, G_: Parser<I, O, E>, H_: Parser<I, O, E>, I_: Parser<I, O, E>, J_: Parser<I, O, E>, K_: Parser<I, O, E>, L_: Parser<I, O, E>, M_: Parser<I, O, E>, N_: Parser<I, O, E>, O_: Parser<I, O, E>, P_: Parser<I, O, E>, Q_: Parser<I, O, E>, R_: Parser<I, O, E>, S_: Parser<I, O, E>, T_: Parser<I, O, E>, U_: Parser<I, O, E>, V_: Parser<I, O, E>, W_: Parser<I, O, E>, X_: Parser<I, O, E>, Y_: Parser<I, O, E>, Z_: Parser<I, O, E>,

Source§

impl<I, E, G_, H_, I_, J_, K_, L_, M_, N_, O_, P_, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_, OG, OH, OI, OJ, OK, OL, OM, ON, OO, OP, OQ, OR, OS, OT, OU, OV, OW, OX, OY, OZ> Parser<I, (OG, OH, OI, OJ, OK, OL, OM, ON, OO, OP, OQ, OR, OS, OT, OU, OV, OW, OX, OY, OZ), E> for Tuple<(G_, H_, I_, J_, K_, L_, M_, N_, O_, P_, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_)>
where I: InputType, E: ParserExtras<I>, G_: Parser<I, OG, E>, H_: Parser<I, OH, E>, I_: Parser<I, OI, E>, J_: Parser<I, OJ, E>, K_: Parser<I, OK, E>, L_: Parser<I, OL, E>, M_: Parser<I, OM, E>, N_: Parser<I, ON, E>, O_: Parser<I, OO, E>, P_: Parser<I, OP, E>, Q_: Parser<I, OQ, E>, R_: Parser<I, OR, E>, S_: Parser<I, OS, E>, T_: Parser<I, OT, E>, U_: Parser<I, OU, E>, V_: Parser<I, OV, E>, W_: Parser<I, OW, E>, X_: Parser<I, OX, E>, Y_: Parser<I, OY, E>, Z_: Parser<I, OZ, E>,

Source§

impl<I, E, H_, I_, J_, K_, L_, M_, N_, O_, P_, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_, O> Parser<I, O, E> for Choice<(H_, I_, J_, K_, L_, M_, N_, O_, P_, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_)>
where I: InputType, E: ParserExtras<I>, H_: Parser<I, O, E>, I_: Parser<I, O, E>, J_: Parser<I, O, E>, K_: Parser<I, O, E>, L_: Parser<I, O, E>, M_: Parser<I, O, E>, N_: Parser<I, O, E>, O_: Parser<I, O, E>, P_: Parser<I, O, E>, Q_: Parser<I, O, E>, R_: Parser<I, O, E>, S_: Parser<I, O, E>, T_: Parser<I, O, E>, U_: Parser<I, O, E>, V_: Parser<I, O, E>, W_: Parser<I, O, E>, X_: Parser<I, O, E>, Y_: Parser<I, O, E>, Z_: Parser<I, O, E>,

Source§

impl<I, E, H_, I_, J_, K_, L_, M_, N_, O_, P_, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_, OH, OI, OJ, OK, OL, OM, ON, OO, OP, OQ, OR, OS, OT, OU, OV, OW, OX, OY, OZ> Parser<I, (OH, OI, OJ, OK, OL, OM, ON, OO, OP, OQ, OR, OS, OT, OU, OV, OW, OX, OY, OZ), E> for Tuple<(H_, I_, J_, K_, L_, M_, N_, O_, P_, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_)>
where I: InputType, E: ParserExtras<I>, H_: Parser<I, OH, E>, I_: Parser<I, OI, E>, J_: Parser<I, OJ, E>, K_: Parser<I, OK, E>, L_: Parser<I, OL, E>, M_: Parser<I, OM, E>, N_: Parser<I, ON, E>, O_: Parser<I, OO, E>, P_: Parser<I, OP, E>, Q_: Parser<I, OQ, E>, R_: Parser<I, OR, E>, S_: Parser<I, OS, E>, T_: Parser<I, OT, E>, U_: Parser<I, OU, E>, V_: Parser<I, OV, E>, W_: Parser<I, OW, E>, X_: Parser<I, OX, E>, Y_: Parser<I, OY, E>, Z_: Parser<I, OZ, E>,

Source§

impl<I, E, I_, J_, K_, L_, M_, N_, O_, P_, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_, O> Parser<I, O, E> for Choice<(I_, J_, K_, L_, M_, N_, O_, P_, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_)>
where I: InputType, E: ParserExtras<I>, I_: Parser<I, O, E>, J_: Parser<I, O, E>, K_: Parser<I, O, E>, L_: Parser<I, O, E>, M_: Parser<I, O, E>, N_: Parser<I, O, E>, O_: Parser<I, O, E>, P_: Parser<I, O, E>, Q_: Parser<I, O, E>, R_: Parser<I, O, E>, S_: Parser<I, O, E>, T_: Parser<I, O, E>, U_: Parser<I, O, E>, V_: Parser<I, O, E>, W_: Parser<I, O, E>, X_: Parser<I, O, E>, Y_: Parser<I, O, E>, Z_: Parser<I, O, E>,

Source§

impl<I, E, I_, J_, K_, L_, M_, N_, O_, P_, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_, OI, OJ, OK, OL, OM, ON, OO, OP, OQ, OR, OS, OT, OU, OV, OW, OX, OY, OZ> Parser<I, (OI, OJ, OK, OL, OM, ON, OO, OP, OQ, OR, OS, OT, OU, OV, OW, OX, OY, OZ), E> for Tuple<(I_, J_, K_, L_, M_, N_, O_, P_, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_)>
where I: InputType, E: ParserExtras<I>, I_: Parser<I, OI, E>, J_: Parser<I, OJ, E>, K_: Parser<I, OK, E>, L_: Parser<I, OL, E>, M_: Parser<I, OM, E>, N_: Parser<I, ON, E>, O_: Parser<I, OO, E>, P_: Parser<I, OP, E>, Q_: Parser<I, OQ, E>, R_: Parser<I, OR, E>, S_: Parser<I, OS, E>, T_: Parser<I, OT, E>, U_: Parser<I, OU, E>, V_: Parser<I, OV, E>, W_: Parser<I, OW, E>, X_: Parser<I, OX, E>, Y_: Parser<I, OY, E>, Z_: Parser<I, OZ, E>,

Source§

impl<I, E, J_, K_, L_, M_, N_, O_, P_, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_, O> Parser<I, O, E> for Choice<(J_, K_, L_, M_, N_, O_, P_, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_)>
where I: InputType, E: ParserExtras<I>, J_: Parser<I, O, E>, K_: Parser<I, O, E>, L_: Parser<I, O, E>, M_: Parser<I, O, E>, N_: Parser<I, O, E>, O_: Parser<I, O, E>, P_: Parser<I, O, E>, Q_: Parser<I, O, E>, R_: Parser<I, O, E>, S_: Parser<I, O, E>, T_: Parser<I, O, E>, U_: Parser<I, O, E>, V_: Parser<I, O, E>, W_: Parser<I, O, E>, X_: Parser<I, O, E>, Y_: Parser<I, O, E>, Z_: Parser<I, O, E>,

Source§

impl<I, E, J_, K_, L_, M_, N_, O_, P_, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_, OJ, OK, OL, OM, ON, OO, OP, OQ, OR, OS, OT, OU, OV, OW, OX, OY, OZ> Parser<I, (OJ, OK, OL, OM, ON, OO, OP, OQ, OR, OS, OT, OU, OV, OW, OX, OY, OZ), E> for Tuple<(J_, K_, L_, M_, N_, O_, P_, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_)>
where I: InputType, E: ParserExtras<I>, J_: Parser<I, OJ, E>, K_: Parser<I, OK, E>, L_: Parser<I, OL, E>, M_: Parser<I, OM, E>, N_: Parser<I, ON, E>, O_: Parser<I, OO, E>, P_: Parser<I, OP, E>, Q_: Parser<I, OQ, E>, R_: Parser<I, OR, E>, S_: Parser<I, OS, E>, T_: Parser<I, OT, E>, U_: Parser<I, OU, E>, V_: Parser<I, OV, E>, W_: Parser<I, OW, E>, X_: Parser<I, OX, E>, Y_: Parser<I, OY, E>, Z_: Parser<I, OZ, E>,

Source§

impl<I, E, K_, L_, M_, N_, O_, P_, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_, O> Parser<I, O, E> for Choice<(K_, L_, M_, N_, O_, P_, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_)>
where I: InputType, E: ParserExtras<I>, K_: Parser<I, O, E>, L_: Parser<I, O, E>, M_: Parser<I, O, E>, N_: Parser<I, O, E>, O_: Parser<I, O, E>, P_: Parser<I, O, E>, Q_: Parser<I, O, E>, R_: Parser<I, O, E>, S_: Parser<I, O, E>, T_: Parser<I, O, E>, U_: Parser<I, O, E>, V_: Parser<I, O, E>, W_: Parser<I, O, E>, X_: Parser<I, O, E>, Y_: Parser<I, O, E>, Z_: Parser<I, O, E>,

Source§

impl<I, E, K_, L_, M_, N_, O_, P_, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_, OK, OL, OM, ON, OO, OP, OQ, OR, OS, OT, OU, OV, OW, OX, OY, OZ> Parser<I, (OK, OL, OM, ON, OO, OP, OQ, OR, OS, OT, OU, OV, OW, OX, OY, OZ), E> for Tuple<(K_, L_, M_, N_, O_, P_, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_)>
where I: InputType, E: ParserExtras<I>, K_: Parser<I, OK, E>, L_: Parser<I, OL, E>, M_: Parser<I, OM, E>, N_: Parser<I, ON, E>, O_: Parser<I, OO, E>, P_: Parser<I, OP, E>, Q_: Parser<I, OQ, E>, R_: Parser<I, OR, E>, S_: Parser<I, OS, E>, T_: Parser<I, OT, E>, U_: Parser<I, OU, E>, V_: Parser<I, OV, E>, W_: Parser<I, OW, E>, X_: Parser<I, OX, E>, Y_: Parser<I, OY, E>, Z_: Parser<I, OZ, E>,

Source§

impl<I, E, L_, M_, N_, O_, P_, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_, O> Parser<I, O, E> for Choice<(L_, M_, N_, O_, P_, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_)>
where I: InputType, E: ParserExtras<I>, L_: Parser<I, O, E>, M_: Parser<I, O, E>, N_: Parser<I, O, E>, O_: Parser<I, O, E>, P_: Parser<I, O, E>, Q_: Parser<I, O, E>, R_: Parser<I, O, E>, S_: Parser<I, O, E>, T_: Parser<I, O, E>, U_: Parser<I, O, E>, V_: Parser<I, O, E>, W_: Parser<I, O, E>, X_: Parser<I, O, E>, Y_: Parser<I, O, E>, Z_: Parser<I, O, E>,

Source§

impl<I, E, L_, M_, N_, O_, P_, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_, OL, OM, ON, OO, OP, OQ, OR, OS, OT, OU, OV, OW, OX, OY, OZ> Parser<I, (OL, OM, ON, OO, OP, OQ, OR, OS, OT, OU, OV, OW, OX, OY, OZ), E> for Tuple<(L_, M_, N_, O_, P_, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_)>
where I: InputType, E: ParserExtras<I>, L_: Parser<I, OL, E>, M_: Parser<I, OM, E>, N_: Parser<I, ON, E>, O_: Parser<I, OO, E>, P_: Parser<I, OP, E>, Q_: Parser<I, OQ, E>, R_: Parser<I, OR, E>, S_: Parser<I, OS, E>, T_: Parser<I, OT, E>, U_: Parser<I, OU, E>, V_: Parser<I, OV, E>, W_: Parser<I, OW, E>, X_: Parser<I, OX, E>, Y_: Parser<I, OY, E>, Z_: Parser<I, OZ, E>,

Source§

impl<I, E, M_, N_, O_, P_, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_, O> Parser<I, O, E> for Choice<(M_, N_, O_, P_, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_)>
where I: InputType, E: ParserExtras<I>, M_: Parser<I, O, E>, N_: Parser<I, O, E>, O_: Parser<I, O, E>, P_: Parser<I, O, E>, Q_: Parser<I, O, E>, R_: Parser<I, O, E>, S_: Parser<I, O, E>, T_: Parser<I, O, E>, U_: Parser<I, O, E>, V_: Parser<I, O, E>, W_: Parser<I, O, E>, X_: Parser<I, O, E>, Y_: Parser<I, O, E>, Z_: Parser<I, O, E>,

Source§

impl<I, E, M_, N_, O_, P_, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_, OM, ON, OO, OP, OQ, OR, OS, OT, OU, OV, OW, OX, OY, OZ> Parser<I, (OM, ON, OO, OP, OQ, OR, OS, OT, OU, OV, OW, OX, OY, OZ), E> for Tuple<(M_, N_, O_, P_, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_)>
where I: InputType, E: ParserExtras<I>, M_: Parser<I, OM, E>, N_: Parser<I, ON, E>, O_: Parser<I, OO, E>, P_: Parser<I, OP, E>, Q_: Parser<I, OQ, E>, R_: Parser<I, OR, E>, S_: Parser<I, OS, E>, T_: Parser<I, OT, E>, U_: Parser<I, OU, E>, V_: Parser<I, OV, E>, W_: Parser<I, OW, E>, X_: Parser<I, OX, E>, Y_: Parser<I, OY, E>, Z_: Parser<I, OZ, E>,

Source§

impl<I, E, N_, O_, P_, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_, O> Parser<I, O, E> for Choice<(N_, O_, P_, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_)>
where I: InputType, E: ParserExtras<I>, N_: Parser<I, O, E>, O_: Parser<I, O, E>, P_: Parser<I, O, E>, Q_: Parser<I, O, E>, R_: Parser<I, O, E>, S_: Parser<I, O, E>, T_: Parser<I, O, E>, U_: Parser<I, O, E>, V_: Parser<I, O, E>, W_: Parser<I, O, E>, X_: Parser<I, O, E>, Y_: Parser<I, O, E>, Z_: Parser<I, O, E>,

Source§

impl<I, E, N_, O_, P_, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_, ON, OO, OP, OQ, OR, OS, OT, OU, OV, OW, OX, OY, OZ> Parser<I, (ON, OO, OP, OQ, OR, OS, OT, OU, OV, OW, OX, OY, OZ), E> for Tuple<(N_, O_, P_, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_)>
where I: InputType, E: ParserExtras<I>, N_: Parser<I, ON, E>, O_: Parser<I, OO, E>, P_: Parser<I, OP, E>, Q_: Parser<I, OQ, E>, R_: Parser<I, OR, E>, S_: Parser<I, OS, E>, T_: Parser<I, OT, E>, U_: Parser<I, OU, E>, V_: Parser<I, OV, E>, W_: Parser<I, OW, E>, X_: Parser<I, OX, E>, Y_: Parser<I, OY, E>, Z_: Parser<I, OZ, E>,

Source§

impl<I, E, O_, P_, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_, O> Parser<I, O, E> for Choice<(O_, P_, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_)>
where I: InputType, E: ParserExtras<I>, O_: Parser<I, O, E>, P_: Parser<I, O, E>, Q_: Parser<I, O, E>, R_: Parser<I, O, E>, S_: Parser<I, O, E>, T_: Parser<I, O, E>, U_: Parser<I, O, E>, V_: Parser<I, O, E>, W_: Parser<I, O, E>, X_: Parser<I, O, E>, Y_: Parser<I, O, E>, Z_: Parser<I, O, E>,

Source§

impl<I, E, O_, P_, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_, OO, OP, OQ, OR, OS, OT, OU, OV, OW, OX, OY, OZ> Parser<I, (OO, OP, OQ, OR, OS, OT, OU, OV, OW, OX, OY, OZ), E> for Tuple<(O_, P_, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_)>
where I: InputType, E: ParserExtras<I>, O_: Parser<I, OO, E>, P_: Parser<I, OP, E>, Q_: Parser<I, OQ, E>, R_: Parser<I, OR, E>, S_: Parser<I, OS, E>, T_: Parser<I, OT, E>, U_: Parser<I, OU, E>, V_: Parser<I, OV, E>, W_: Parser<I, OW, E>, X_: Parser<I, OX, E>, Y_: Parser<I, OY, E>, Z_: Parser<I, OZ, E>,

Source§

impl<I, E, P_, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_, O> Parser<I, O, E> for Choice<(P_, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_)>
where I: InputType, E: ParserExtras<I>, P_: Parser<I, O, E>, Q_: Parser<I, O, E>, R_: Parser<I, O, E>, S_: Parser<I, O, E>, T_: Parser<I, O, E>, U_: Parser<I, O, E>, V_: Parser<I, O, E>, W_: Parser<I, O, E>, X_: Parser<I, O, E>, Y_: Parser<I, O, E>, Z_: Parser<I, O, E>,

Source§

impl<I, E, P_, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_, OP, OQ, OR, OS, OT, OU, OV, OW, OX, OY, OZ> Parser<I, (OP, OQ, OR, OS, OT, OU, OV, OW, OX, OY, OZ), E> for Tuple<(P_, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_)>
where I: InputType, E: ParserExtras<I>, P_: Parser<I, OP, E>, Q_: Parser<I, OQ, E>, R_: Parser<I, OR, E>, S_: Parser<I, OS, E>, T_: Parser<I, OT, E>, U_: Parser<I, OU, E>, V_: Parser<I, OV, E>, W_: Parser<I, OW, E>, X_: Parser<I, OX, E>, Y_: Parser<I, OY, E>, Z_: Parser<I, OZ, E>,

Source§

impl<I, E, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_, O> Parser<I, O, E> for Choice<(Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_)>
where I: InputType, E: ParserExtras<I>, Q_: Parser<I, O, E>, R_: Parser<I, O, E>, S_: Parser<I, O, E>, T_: Parser<I, O, E>, U_: Parser<I, O, E>, V_: Parser<I, O, E>, W_: Parser<I, O, E>, X_: Parser<I, O, E>, Y_: Parser<I, O, E>, Z_: Parser<I, O, E>,

Source§

impl<I, E, Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_, OQ, OR, OS, OT, OU, OV, OW, OX, OY, OZ> Parser<I, (OQ, OR, OS, OT, OU, OV, OW, OX, OY, OZ), E> for Tuple<(Q_, R_, S_, T_, U_, V_, W_, X_, Y_, Z_)>
where I: InputType, E: ParserExtras<I>, Q_: Parser<I, OQ, E>, R_: Parser<I, OR, E>, S_: Parser<I, OS, E>, T_: Parser<I, OT, E>, U_: Parser<I, OU, E>, V_: Parser<I, OV, E>, W_: Parser<I, OW, E>, X_: Parser<I, OX, E>, Y_: Parser<I, OY, E>, Z_: Parser<I, OZ, E>,

Source§

impl<I, E, R_, S_, T_, U_, V_, W_, X_, Y_, Z_, O> Parser<I, O, E> for Choice<(R_, S_, T_, U_, V_, W_, X_, Y_, Z_)>
where I: InputType, E: ParserExtras<I>, R_: Parser<I, O, E>, S_: Parser<I, O, E>, T_: Parser<I, O, E>, U_: Parser<I, O, E>, V_: Parser<I, O, E>, W_: Parser<I, O, E>, X_: Parser<I, O, E>, Y_: Parser<I, O, E>, Z_: Parser<I, O, E>,

Source§

impl<I, E, R_, S_, T_, U_, V_, W_, X_, Y_, Z_, OR, OS, OT, OU, OV, OW, OX, OY, OZ> Parser<I, (OR, OS, OT, OU, OV, OW, OX, OY, OZ), E> for Tuple<(R_, S_, T_, U_, V_, W_, X_, Y_, Z_)>
where I: InputType, E: ParserExtras<I>, R_: Parser<I, OR, E>, S_: Parser<I, OS, E>, T_: Parser<I, OT, E>, U_: Parser<I, OU, E>, V_: Parser<I, OV, E>, W_: Parser<I, OW, E>, X_: Parser<I, OX, E>, Y_: Parser<I, OY, E>, Z_: Parser<I, OZ, E>,

Source§

impl<I, E, S_, T_, U_, V_, W_, X_, Y_, Z_, O> Parser<I, O, E> for Choice<(S_, T_, U_, V_, W_, X_, Y_, Z_)>
where I: InputType, E: ParserExtras<I>, S_: Parser<I, O, E>, T_: Parser<I, O, E>, U_: Parser<I, O, E>, V_: Parser<I, O, E>, W_: Parser<I, O, E>, X_: Parser<I, O, E>, Y_: Parser<I, O, E>, Z_: Parser<I, O, E>,

Source§

impl<I, E, S_, T_, U_, V_, W_, X_, Y_, Z_, OS, OT, OU, OV, OW, OX, OY, OZ> Parser<I, (OS, OT, OU, OV, OW, OX, OY, OZ), E> for Tuple<(S_, T_, U_, V_, W_, X_, Y_, Z_)>
where I: InputType, E: ParserExtras<I>, S_: Parser<I, OS, E>, T_: Parser<I, OT, E>, U_: Parser<I, OU, E>, V_: Parser<I, OV, E>, W_: Parser<I, OW, E>, X_: Parser<I, OX, E>, Y_: Parser<I, OY, E>, Z_: Parser<I, OZ, E>,

Source§

impl<I, E, T_, U_, V_, W_, X_, Y_, Z_, O> Parser<I, O, E> for Choice<(T_, U_, V_, W_, X_, Y_, Z_)>
where I: InputType, E: ParserExtras<I>, T_: Parser<I, O, E>, U_: Parser<I, O, E>, V_: Parser<I, O, E>, W_: Parser<I, O, E>, X_: Parser<I, O, E>, Y_: Parser<I, O, E>, Z_: Parser<I, O, E>,

Source§

impl<I, E, T_, U_, V_, W_, X_, Y_, Z_, OT, OU, OV, OW, OX, OY, OZ> Parser<I, (OT, OU, OV, OW, OX, OY, OZ), E> for Tuple<(T_, U_, V_, W_, X_, Y_, Z_)>
where I: InputType, E: ParserExtras<I>, T_: Parser<I, OT, E>, U_: Parser<I, OU, E>, V_: Parser<I, OV, E>, W_: Parser<I, OW, E>, X_: Parser<I, OX, E>, Y_: Parser<I, OY, E>, Z_: Parser<I, OZ, E>,

Source§

impl<I, E, U_, V_, W_, X_, Y_, Z_, O> Parser<I, O, E> for Choice<(U_, V_, W_, X_, Y_, Z_)>
where I: InputType, E: ParserExtras<I>, U_: Parser<I, O, E>, V_: Parser<I, O, E>, W_: Parser<I, O, E>, X_: Parser<I, O, E>, Y_: Parser<I, O, E>, Z_: Parser<I, O, E>,

Source§

impl<I, E, U_, V_, W_, X_, Y_, Z_, OU, OV, OW, OX, OY, OZ> Parser<I, (OU, OV, OW, OX, OY, OZ), E> for Tuple<(U_, V_, W_, X_, Y_, Z_)>
where I: InputType, E: ParserExtras<I>, U_: Parser<I, OU, E>, V_: Parser<I, OV, E>, W_: Parser<I, OW, E>, X_: Parser<I, OX, E>, Y_: Parser<I, OY, E>, Z_: Parser<I, OZ, E>,

Source§

impl<I, E, V_, W_, X_, Y_, Z_, O> Parser<I, O, E> for Choice<(V_, W_, X_, Y_, Z_)>
where I: InputType, E: ParserExtras<I>, V_: Parser<I, O, E>, W_: Parser<I, O, E>, X_: Parser<I, O, E>, Y_: Parser<I, O, E>, Z_: Parser<I, O, E>,

Source§

impl<I, E, V_, W_, X_, Y_, Z_, OV, OW, OX, OY, OZ> Parser<I, (OV, OW, OX, OY, OZ), E> for Tuple<(V_, W_, X_, Y_, Z_)>
where I: InputType, E: ParserExtras<I>, V_: Parser<I, OV, E>, W_: Parser<I, OW, E>, X_: Parser<I, OX, E>, Y_: Parser<I, OY, E>, Z_: Parser<I, OZ, E>,

Source§

impl<I, E, W_, X_, Y_, Z_, O> Parser<I, O, E> for Choice<(W_, X_, Y_, Z_)>
where I: InputType, E: ParserExtras<I>, W_: Parser<I, O, E>, X_: Parser<I, O, E>, Y_: Parser<I, O, E>, Z_: Parser<I, O, E>,

Source§

impl<I, E, W_, X_, Y_, Z_, OW, OX, OY, OZ> Parser<I, (OW, OX, OY, OZ), E> for Tuple<(W_, X_, Y_, Z_)>
where I: InputType, E: ParserExtras<I>, W_: Parser<I, OW, E>, X_: Parser<I, OX, E>, Y_: Parser<I, OY, E>, Z_: Parser<I, OZ, E>,

Source§

impl<I, E, X_, Y_, Z_, O> Parser<I, O, E> for Choice<(X_, Y_, Z_)>
where I: InputType, E: ParserExtras<I>, X_: Parser<I, O, E>, Y_: Parser<I, O, E>, Z_: Parser<I, O, E>,

Source§

impl<I, E, X_, Y_, Z_, OX, OY, OZ> Parser<I, (OX, OY, OZ), E> for Tuple<(X_, Y_, Z_)>
where I: InputType, E: ParserExtras<I>, X_: Parser<I, OX, E>, Y_: Parser<I, OY, E>, Z_: Parser<I, OZ, E>,

Source§

impl<I, E, Y_, Z_, O> Parser<I, O, E> for Choice<(Y_, Z_)>
where I: InputType, E: ParserExtras<I>, Y_: Parser<I, O, E>, Z_: Parser<I, O, E>,

Source§

impl<I, E, Y_, Z_, OY, OZ> Parser<I, (OY, OZ), E> for Tuple<(Y_, Z_)>
where I: InputType, E: ParserExtras<I>, Y_: Parser<I, OY, E>, Z_: Parser<I, OZ, E>,

Source§

impl<I, E, Z_, O> Parser<I, O, E> for Choice<(Z_,)>
where I: InputType, E: ParserExtras<I>, Z_: Parser<I, O, E>,

Source§

impl<I, E, Z_, OZ> Parser<I, (OZ,), E> for Tuple<(Z_,)>
where I: InputType, E: ParserExtras<I>, Z_: Parser<I, OZ, E>,

Source§

impl<I: InputType, E: ParserExtras<I>, A: Parser<I, OA, E>, OA> Parser<I, (), E> for Ignored<A, OA>

Source§

impl<I: InputType, E: ParserExtras<I>, O1, O2, A: Parser<I, O1, E>, B: Parser<I, O2, E>> Parser<I, (O1, O2), E> for Then<O1, O2, A, B, true, false>

Source§

impl<I: InputType, E: ParserExtras<I>, O1, O2, A: Parser<I, O1, E>, B: Parser<I, O2, E>> Parser<I, O1, E> for Then<O1, O2, A, B, false, false>

Source§

impl<I: InputType, E: ParserExtras<I>, O1, O2, A: Parser<I, O1, E>, B: Parser<I, O2, E>> Parser<I, O2, E> for Then<O1, O2, A, B, false, true>

Source§

impl<I: InputType, E: ParserExtras<I>, O, A: Parser<I, O, E>> Parser<I, Option<O>, E> for Maybe<A>

Source§

impl<I: InputType, E: ParserExtras<I>, const A: usize> Parser<I, [<I as InputType>::Token; A], E> for TakeExact<A>

Source§

impl<I: InputType, O, E: ParserExtras<I>, A: Parser<I, O, E>> Parser<I, O, E> for Rewind<A>

Source§

impl<I: InputType, O, E: ParserExtras<I>, A: Parser<I, O, E>, F: Fn(&O) -> bool> Parser<I, O, E> for FilterParser<A, F, O>

Source§

impl<I: InputType, O, E: ParserExtras<I>, F: for<'parse> Fn(Input<'parse, I, E>) -> IResult<'parse, I, E, O>> Parser<I, O, E> for F

Source§

impl<I: InputType, O, E: ParserExtras<I>, P: Parser<I, O, E>, V: FromIterator<O>> Parser<I, V, E> for Repeated<P, O, V>

Source§

impl<I: InputType, O, E: ParserExtras<I>, U, A: Parser<I, O, E>, F: Fn(O) -> U> Parser<I, U, E> for Map<A, O, F, U>

Source§

impl<I: InputType, O, E: ParserExtras<I>, U, F: Fn(O) -> Result<U, E::Error>, A: Parser<I, O, E>> Parser<I, U, E> for TryMap<A, F, O, U>

Source§

impl<I: InputType, O, E: ParserExtras<I>, U, F: Fn(O, Range<I::Offset>) -> Result<U, E::Error>, A: Parser<I, O, E>> Parser<I, U, E> for TryMapWithSpan<A, F, O, U>

Source§

impl<I: InputType, O, E: ParserExtras<I>, U: Clone, A: Parser<I, O, E>> Parser<I, U, E> for To<A, O, U>