Trait winnow::combinator::Permutation

source ·
pub trait Permutation<I, O, E> {
    // Required method
    fn permutation(&mut self, input: &mut I) -> PResult<O, E>;
}
Expand description

Helper trait for the permutation() combinator.

This trait is implemented for tuples of up to 21 elements

Required Methods§

source

fn permutation(&mut self, input: &mut I) -> PResult<O, E>

Tries to apply all parsers in the tuple in various orders until all of them succeed

Implementations on Foreign Types§

source§

impl<I: Stream, O1, O2, Error: ParserError<I>, P1: Parser<I, O1, Error>, P2: Parser<I, O2, Error>> Permutation<I, (O1, O2), Error> for (P1, P2)

source§

fn permutation(&mut self, input: &mut I) -> PResult<(O1, O2), Error>

source§

impl<I: Stream, O1, O2, O3, Error: ParserError<I>, P1: Parser<I, O1, Error>, P2: Parser<I, O2, Error>, P3: Parser<I, O3, Error>> Permutation<I, (O1, O2, O3), Error> for (P1, P2, P3)

source§

fn permutation(&mut self, input: &mut I) -> PResult<(O1, O2, O3), Error>

source§

impl<I: Stream, O1, O2, O3, O4, Error: ParserError<I>, P1: Parser<I, O1, Error>, P2: Parser<I, O2, Error>, P3: Parser<I, O3, Error>, P4: Parser<I, O4, Error>> Permutation<I, (O1, O2, O3, O4), Error> for (P1, P2, P3, P4)

source§

fn permutation(&mut self, input: &mut I) -> PResult<(O1, O2, O3, O4), Error>

source§

impl<I: Stream, O1, O2, O3, O4, O5, Error: ParserError<I>, P1: Parser<I, O1, Error>, P2: Parser<I, O2, Error>, P3: Parser<I, O3, Error>, P4: Parser<I, O4, Error>, P5: Parser<I, O5, Error>> Permutation<I, (O1, O2, O3, O4, O5), Error> for (P1, P2, P3, P4, P5)

source§

fn permutation(&mut self, input: &mut I) -> PResult<(O1, O2, O3, O4, O5), Error>

source§

impl<I: Stream, O1, O2, O3, O4, O5, O6, Error: ParserError<I>, P1: Parser<I, O1, Error>, P2: Parser<I, O2, Error>, P3: Parser<I, O3, Error>, P4: Parser<I, O4, Error>, P5: Parser<I, O5, Error>, P6: Parser<I, O6, Error>> Permutation<I, (O1, O2, O3, O4, O5, O6), Error> for (P1, P2, P3, P4, P5, P6)

source§

fn permutation( &mut self, input: &mut I ) -> PResult<(O1, O2, O3, O4, O5, O6), Error>

source§

impl<I: Stream, O1, O2, O3, O4, O5, O6, O7, Error: ParserError<I>, P1: Parser<I, O1, Error>, P2: Parser<I, O2, Error>, P3: Parser<I, O3, Error>, P4: Parser<I, O4, Error>, P5: Parser<I, O5, Error>, P6: Parser<I, O6, Error>, P7: Parser<I, O7, Error>> Permutation<I, (O1, O2, O3, O4, O5, O6, O7), Error> for (P1, P2, P3, P4, P5, P6, P7)

source§

impl<I: Stream, O1, O2, O3, O4, O5, O6, O7, O8, Error: ParserError<I>, P1: Parser<I, O1, Error>, P2: Parser<I, O2, Error>, P3: Parser<I, O3, Error>, P4: Parser<I, O4, Error>, P5: Parser<I, O5, Error>, P6: Parser<I, O6, Error>, P7: Parser<I, O7, Error>, P8: Parser<I, O8, Error>> Permutation<I, (O1, O2, O3, O4, O5, O6, O7, O8), Error> for (P1, P2, P3, P4, P5, P6, P7, P8)

source§

impl<I: Stream, O1, O2, O3, O4, O5, O6, O7, O8, O9, Error: ParserError<I>, P1: Parser<I, O1, Error>, P2: Parser<I, O2, Error>, P3: Parser<I, O3, Error>, P4: Parser<I, O4, Error>, P5: Parser<I, O5, Error>, P6: Parser<I, O6, Error>, P7: Parser<I, O7, Error>, P8: Parser<I, O8, Error>, P9: Parser<I, O9, Error>> Permutation<I, (O1, O2, O3, O4, O5, O6, O7, O8, O9), Error> for (P1, P2, P3, P4, P5, P6, P7, P8, P9)

source§

impl<I: Stream, O1, O2, O3, O4, O5, O6, O7, O8, O9, O10, Error: ParserError<I>, P1: Parser<I, O1, Error>, P2: Parser<I, O2, Error>, P3: Parser<I, O3, Error>, P4: Parser<I, O4, Error>, P5: Parser<I, O5, Error>, P6: Parser<I, O6, Error>, P7: Parser<I, O7, Error>, P8: Parser<I, O8, Error>, P9: Parser<I, O9, Error>, P10: Parser<I, O10, Error>> Permutation<I, (O1, O2, O3, O4, O5, O6, O7, O8, O9, O10), Error> for (P1, P2, P3, P4, P5, P6, P7, P8, P9, P10)

source§

impl<I: Stream, O1, O2, O3, O4, O5, O6, O7, O8, O9, O10, O11, Error: ParserError<I>, P1: Parser<I, O1, Error>, P2: Parser<I, O2, Error>, P3: Parser<I, O3, Error>, P4: Parser<I, O4, Error>, P5: Parser<I, O5, Error>, P6: Parser<I, O6, Error>, P7: Parser<I, O7, Error>, P8: Parser<I, O8, Error>, P9: Parser<I, O9, Error>, P10: Parser<I, O10, Error>, P11: Parser<I, O11, Error>> Permutation<I, (O1, O2, O3, O4, O5, O6, O7, O8, O9, O10, O11), Error> for (P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11)

source§

impl<I: Stream, O1, O2, O3, O4, O5, O6, O7, O8, O9, O10, O11, O12, Error: ParserError<I>, P1: Parser<I, O1, Error>, P2: Parser<I, O2, Error>, P3: Parser<I, O3, Error>, P4: Parser<I, O4, Error>, P5: Parser<I, O5, Error>, P6: Parser<I, O6, Error>, P7: Parser<I, O7, Error>, P8: Parser<I, O8, Error>, P9: Parser<I, O9, Error>, P10: Parser<I, O10, Error>, P11: Parser<I, O11, Error>, P12: Parser<I, O12, Error>> Permutation<I, (O1, O2, O3, O4, O5, O6, O7, O8, O9, O10, O11, O12), Error> for (P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12)

source§

impl<I: Stream, O1, O2, O3, O4, O5, O6, O7, O8, O9, O10, O11, O12, O13, Error: ParserError<I>, P1: Parser<I, O1, Error>, P2: Parser<I, O2, Error>, P3: Parser<I, O3, Error>, P4: Parser<I, O4, Error>, P5: Parser<I, O5, Error>, P6: Parser<I, O6, Error>, P7: Parser<I, O7, Error>, P8: Parser<I, O8, Error>, P9: Parser<I, O9, Error>, P10: Parser<I, O10, Error>, P11: Parser<I, O11, Error>, P12: Parser<I, O12, Error>, P13: Parser<I, O13, Error>> Permutation<I, (O1, O2, O3, O4, O5, O6, O7, O8, O9, O10, O11, O12, O13), Error> for (P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13)

source§

impl<I: Stream, O1, O2, O3, O4, O5, O6, O7, O8, O9, O10, O11, O12, O13, O14, Error: ParserError<I>, P1: Parser<I, O1, Error>, P2: Parser<I, O2, Error>, P3: Parser<I, O3, Error>, P4: Parser<I, O4, Error>, P5: Parser<I, O5, Error>, P6: Parser<I, O6, Error>, P7: Parser<I, O7, Error>, P8: Parser<I, O8, Error>, P9: Parser<I, O9, Error>, P10: Parser<I, O10, Error>, P11: Parser<I, O11, Error>, P12: Parser<I, O12, Error>, P13: Parser<I, O13, Error>, P14: Parser<I, O14, Error>> Permutation<I, (O1, O2, O3, O4, O5, O6, O7, O8, O9, O10, O11, O12, O13, O14), Error> for (P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14)

source§

impl<I: Stream, O1, O2, O3, O4, O5, O6, O7, O8, O9, O10, O11, O12, O13, O14, O15, Error: ParserError<I>, P1: Parser<I, O1, Error>, P2: Parser<I, O2, Error>, P3: Parser<I, O3, Error>, P4: Parser<I, O4, Error>, P5: Parser<I, O5, Error>, P6: Parser<I, O6, Error>, P7: Parser<I, O7, Error>, P8: Parser<I, O8, Error>, P9: Parser<I, O9, Error>, P10: Parser<I, O10, Error>, P11: Parser<I, O11, Error>, P12: Parser<I, O12, Error>, P13: Parser<I, O13, Error>, P14: Parser<I, O14, Error>, P15: Parser<I, O15, Error>> Permutation<I, (O1, O2, O3, O4, O5, O6, O7, O8, O9, O10, O11, O12, O13, O14, O15), Error> for (P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15)

source§

impl<I: Stream, O1, O2, O3, O4, O5, O6, O7, O8, O9, O10, O11, O12, O13, O14, O15, O16, Error: ParserError<I>, P1: Parser<I, O1, Error>, P2: Parser<I, O2, Error>, P3: Parser<I, O3, Error>, P4: Parser<I, O4, Error>, P5: Parser<I, O5, Error>, P6: Parser<I, O6, Error>, P7: Parser<I, O7, Error>, P8: Parser<I, O8, Error>, P9: Parser<I, O9, Error>, P10: Parser<I, O10, Error>, P11: Parser<I, O11, Error>, P12: Parser<I, O12, Error>, P13: Parser<I, O13, Error>, P14: Parser<I, O14, Error>, P15: Parser<I, O15, Error>, P16: Parser<I, O16, Error>> Permutation<I, (O1, O2, O3, O4, O5, O6, O7, O8, O9, O10, O11, O12, O13, O14, O15, O16), Error> for (P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16)

source§

impl<I: Stream, O1, O2, O3, O4, O5, O6, O7, O8, O9, O10, O11, O12, O13, O14, O15, O16, O17, Error: ParserError<I>, P1: Parser<I, O1, Error>, P2: Parser<I, O2, Error>, P3: Parser<I, O3, Error>, P4: Parser<I, O4, Error>, P5: Parser<I, O5, Error>, P6: Parser<I, O6, Error>, P7: Parser<I, O7, Error>, P8: Parser<I, O8, Error>, P9: Parser<I, O9, Error>, P10: Parser<I, O10, Error>, P11: Parser<I, O11, Error>, P12: Parser<I, O12, Error>, P13: Parser<I, O13, Error>, P14: Parser<I, O14, Error>, P15: Parser<I, O15, Error>, P16: Parser<I, O16, Error>, P17: Parser<I, O17, Error>> Permutation<I, (O1, O2, O3, O4, O5, O6, O7, O8, O9, O10, O11, O12, O13, O14, O15, O16, O17), Error> for (P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17)

source§

impl<I: Stream, O1, O2, O3, O4, O5, O6, O7, O8, O9, O10, O11, O12, O13, O14, O15, O16, O17, O18, Error: ParserError<I>, P1: Parser<I, O1, Error>, P2: Parser<I, O2, Error>, P3: Parser<I, O3, Error>, P4: Parser<I, O4, Error>, P5: Parser<I, O5, Error>, P6: Parser<I, O6, Error>, P7: Parser<I, O7, Error>, P8: Parser<I, O8, Error>, P9: Parser<I, O9, Error>, P10: Parser<I, O10, Error>, P11: Parser<I, O11, Error>, P12: Parser<I, O12, Error>, P13: Parser<I, O13, Error>, P14: Parser<I, O14, Error>, P15: Parser<I, O15, Error>, P16: Parser<I, O16, Error>, P17: Parser<I, O17, Error>, P18: Parser<I, O18, Error>> Permutation<I, (O1, O2, O3, O4, O5, O6, O7, O8, O9, O10, O11, O12, O13, O14, O15, O16, O17, O18), Error> for (P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17, P18)

source§

impl<I: Stream, O1, O2, O3, O4, O5, O6, O7, O8, O9, O10, O11, O12, O13, O14, O15, O16, O17, O18, O19, Error: ParserError<I>, P1: Parser<I, O1, Error>, P2: Parser<I, O2, Error>, P3: Parser<I, O3, Error>, P4: Parser<I, O4, Error>, P5: Parser<I, O5, Error>, P6: Parser<I, O6, Error>, P7: Parser<I, O7, Error>, P8: Parser<I, O8, Error>, P9: Parser<I, O9, Error>, P10: Parser<I, O10, Error>, P11: Parser<I, O11, Error>, P12: Parser<I, O12, Error>, P13: Parser<I, O13, Error>, P14: Parser<I, O14, Error>, P15: Parser<I, O15, Error>, P16: Parser<I, O16, Error>, P17: Parser<I, O17, Error>, P18: Parser<I, O18, Error>, P19: Parser<I, O19, Error>> Permutation<I, (O1, O2, O3, O4, O5, O6, O7, O8, O9, O10, O11, O12, O13, O14, O15, O16, O17, O18, O19), Error> for (P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17, P18, P19)

source§

impl<I: Stream, O1, O2, O3, O4, O5, O6, O7, O8, O9, O10, O11, O12, O13, O14, O15, O16, O17, O18, O19, O20, Error: ParserError<I>, P1: Parser<I, O1, Error>, P2: Parser<I, O2, Error>, P3: Parser<I, O3, Error>, P4: Parser<I, O4, Error>, P5: Parser<I, O5, Error>, P6: Parser<I, O6, Error>, P7: Parser<I, O7, Error>, P8: Parser<I, O8, Error>, P9: Parser<I, O9, Error>, P10: Parser<I, O10, Error>, P11: Parser<I, O11, Error>, P12: Parser<I, O12, Error>, P13: Parser<I, O13, Error>, P14: Parser<I, O14, Error>, P15: Parser<I, O15, Error>, P16: Parser<I, O16, Error>, P17: Parser<I, O17, Error>, P18: Parser<I, O18, Error>, P19: Parser<I, O19, Error>, P20: Parser<I, O20, Error>> Permutation<I, (O1, O2, O3, O4, O5, O6, O7, O8, O9, O10, O11, O12, O13, O14, O15, O16, O17, O18, O19, O20), Error> for (P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17, P18, P19, P20)

source§

impl<I: Stream, O1, O2, O3, O4, O5, O6, O7, O8, O9, O10, O11, O12, O13, O14, O15, O16, O17, O18, O19, O20, O21, Error: ParserError<I>, P1: Parser<I, O1, Error>, P2: Parser<I, O2, Error>, P3: Parser<I, O3, Error>, P4: Parser<I, O4, Error>, P5: Parser<I, O5, Error>, P6: Parser<I, O6, Error>, P7: Parser<I, O7, Error>, P8: Parser<I, O8, Error>, P9: Parser<I, O9, Error>, P10: Parser<I, O10, Error>, P11: Parser<I, O11, Error>, P12: Parser<I, O12, Error>, P13: Parser<I, O13, Error>, P14: Parser<I, O14, Error>, P15: Parser<I, O15, Error>, P16: Parser<I, O16, Error>, P17: Parser<I, O17, Error>, P18: Parser<I, O18, Error>, P19: Parser<I, O19, Error>, P20: Parser<I, O20, Error>, P21: Parser<I, O21, Error>> Permutation<I, (O1, O2, O3, O4, O5, O6, O7, O8, O9, O10, O11, O12, O13, O14, O15, O16, O17, O18, O19, O20, O21), Error> for (P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17, P18, P19, P20, P21)

Implementors§