nom::branch

Trait Permutation

Source
pub trait Permutation<I, O, E> {
    // Required method
    fn permutation(&mut self, input: I) -> IResult<I, 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: I) -> IResult<I, O, E>

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

Implementations on Foreign Types§

Source§

impl<Input: Clone, A, B, C, D, E, Error: ParseError<Input>, FnA: Parser<Input, A, Error>, FnB: Parser<Input, B, Error>, FnC: Parser<Input, C, Error>, FnD: Parser<Input, D, Error>, FnE: Parser<Input, E, Error>> Permutation<Input, (A, B, C, D, E), Error> for (FnA, FnB, FnC, FnD, FnE)

Source§

fn permutation( &mut self, input: Input, ) -> IResult<Input, (A, B, C, D, E), Error>

Source§

impl<Input: Clone, A, B, C, D, E, F, Error: ParseError<Input>, FnA: Parser<Input, A, Error>, FnB: Parser<Input, B, Error>, FnC: Parser<Input, C, Error>, FnD: Parser<Input, D, Error>, FnE: Parser<Input, E, Error>, FnF: Parser<Input, F, Error>> Permutation<Input, (A, B, C, D, E, F), Error> for (FnA, FnB, FnC, FnD, FnE, FnF)

Source§

fn permutation( &mut self, input: Input, ) -> IResult<Input, (A, B, C, D, E, F), Error>

Source§

impl<Input: Clone, A, B, C, D, E, F, G, Error: ParseError<Input>, FnA: Parser<Input, A, Error>, FnB: Parser<Input, B, Error>, FnC: Parser<Input, C, Error>, FnD: Parser<Input, D, Error>, FnE: Parser<Input, E, Error>, FnF: Parser<Input, F, Error>, FnG: Parser<Input, G, Error>> Permutation<Input, (A, B, C, D, E, F, G), Error> for (FnA, FnB, FnC, FnD, FnE, FnF, FnG)

Source§

fn permutation( &mut self, input: Input, ) -> IResult<Input, (A, B, C, D, E, F, G), Error>

Source§

impl<Input: Clone, A, B, C, D, E, F, G, H, Error: ParseError<Input>, FnA: Parser<Input, A, Error>, FnB: Parser<Input, B, Error>, FnC: Parser<Input, C, Error>, FnD: Parser<Input, D, Error>, FnE: Parser<Input, E, Error>, FnF: Parser<Input, F, Error>, FnG: Parser<Input, G, Error>, FnH: Parser<Input, H, Error>> Permutation<Input, (A, B, C, D, E, F, G, H), Error> for (FnA, FnB, FnC, FnD, FnE, FnF, FnG, FnH)

Source§

fn permutation( &mut self, input: Input, ) -> IResult<Input, (A, B, C, D, E, F, G, H), Error>

Source§

impl<Input: Clone, A, B, C, D, E, F, G, H, I, Error: ParseError<Input>, FnA: Parser<Input, A, Error>, FnB: Parser<Input, B, Error>, FnC: Parser<Input, C, Error>, FnD: Parser<Input, D, Error>, FnE: Parser<Input, E, Error>, FnF: Parser<Input, F, Error>, FnG: Parser<Input, G, Error>, FnH: Parser<Input, H, Error>, FnI: Parser<Input, I, Error>> Permutation<Input, (A, B, C, D, E, F, G, H, I), Error> for (FnA, FnB, FnC, FnD, FnE, FnF, FnG, FnH, FnI)

Source§

fn permutation( &mut self, input: Input, ) -> IResult<Input, (A, B, C, D, E, F, G, H, I), Error>

Source§

impl<Input: Clone, A, B, C, D, E, F, G, H, I, J, Error: ParseError<Input>, FnA: Parser<Input, A, Error>, FnB: Parser<Input, B, Error>, FnC: Parser<Input, C, Error>, FnD: Parser<Input, D, Error>, FnE: Parser<Input, E, Error>, FnF: Parser<Input, F, Error>, FnG: Parser<Input, G, Error>, FnH: Parser<Input, H, Error>, FnI: Parser<Input, I, Error>, FnJ: Parser<Input, J, Error>> Permutation<Input, (A, B, C, D, E, F, G, H, I, J), Error> for (FnA, FnB, FnC, FnD, FnE, FnF, FnG, FnH, FnI, FnJ)

Source§

fn permutation( &mut self, input: Input, ) -> IResult<Input, (A, B, C, D, E, F, G, H, I, J), Error>

Source§

impl<Input: Clone, A, B, C, D, E, F, G, H, I, J, K, Error: ParseError<Input>, FnA: Parser<Input, A, Error>, FnB: Parser<Input, B, Error>, FnC: Parser<Input, C, Error>, FnD: Parser<Input, D, Error>, FnE: Parser<Input, E, Error>, FnF: Parser<Input, F, Error>, FnG: Parser<Input, G, Error>, FnH: Parser<Input, H, Error>, FnI: Parser<Input, I, Error>, FnJ: Parser<Input, J, Error>, FnK: Parser<Input, K, Error>> Permutation<Input, (A, B, C, D, E, F, G, H, I, J, K), Error> for (FnA, FnB, FnC, FnD, FnE, FnF, FnG, FnH, FnI, FnJ, FnK)

Source§

fn permutation( &mut self, input: Input, ) -> IResult<Input, (A, B, C, D, E, F, G, H, I, J, K), Error>

Source§

impl<Input: Clone, A, B, C, D, E, F, G, H, I, J, K, L, Error: ParseError<Input>, FnA: Parser<Input, A, Error>, FnB: Parser<Input, B, Error>, FnC: Parser<Input, C, Error>, FnD: Parser<Input, D, Error>, FnE: Parser<Input, E, Error>, FnF: Parser<Input, F, Error>, FnG: Parser<Input, G, Error>, FnH: Parser<Input, H, Error>, FnI: Parser<Input, I, Error>, FnJ: Parser<Input, J, Error>, FnK: Parser<Input, K, Error>, FnL: Parser<Input, L, Error>> Permutation<Input, (A, B, C, D, E, F, G, H, I, J, K, L), Error> for (FnA, FnB, FnC, FnD, FnE, FnF, FnG, FnH, FnI, FnJ, FnK, FnL)

Source§

fn permutation( &mut self, input: Input, ) -> IResult<Input, (A, B, C, D, E, F, G, H, I, J, K, L), Error>

Source§

impl<Input: Clone, A, B, C, D, E, F, G, H, I, J, K, L, M, Error: ParseError<Input>, FnA: Parser<Input, A, Error>, FnB: Parser<Input, B, Error>, FnC: Parser<Input, C, Error>, FnD: Parser<Input, D, Error>, FnE: Parser<Input, E, Error>, FnF: Parser<Input, F, Error>, FnG: Parser<Input, G, Error>, FnH: Parser<Input, H, Error>, FnI: Parser<Input, I, Error>, FnJ: Parser<Input, J, Error>, FnK: Parser<Input, K, Error>, FnL: Parser<Input, L, Error>, FnM: Parser<Input, M, Error>> Permutation<Input, (A, B, C, D, E, F, G, H, I, J, K, L, M), Error> for (FnA, FnB, FnC, FnD, FnE, FnF, FnG, FnH, FnI, FnJ, FnK, FnL, FnM)

Source§

fn permutation( &mut self, input: Input, ) -> IResult<Input, (A, B, C, D, E, F, G, H, I, J, K, L, M), Error>

Source§

impl<Input: Clone, A, B, C, D, E, F, G, H, I, J, K, L, M, N, Error: ParseError<Input>, FnA: Parser<Input, A, Error>, FnB: Parser<Input, B, Error>, FnC: Parser<Input, C, Error>, FnD: Parser<Input, D, Error>, FnE: Parser<Input, E, Error>, FnF: Parser<Input, F, Error>, FnG: Parser<Input, G, Error>, FnH: Parser<Input, H, Error>, FnI: Parser<Input, I, Error>, FnJ: Parser<Input, J, Error>, FnK: Parser<Input, K, Error>, FnL: Parser<Input, L, Error>, FnM: Parser<Input, M, Error>, FnN: Parser<Input, N, Error>> Permutation<Input, (A, B, C, D, E, F, G, H, I, J, K, L, M, N), Error> for (FnA, FnB, FnC, FnD, FnE, FnF, FnG, FnH, FnI, FnJ, FnK, FnL, FnM, FnN)

Source§

fn permutation( &mut self, input: Input, ) -> IResult<Input, (A, B, C, D, E, F, G, H, I, J, K, L, M, N), Error>

Source§

impl<Input: Clone, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, Error: ParseError<Input>, FnA: Parser<Input, A, Error>, FnB: Parser<Input, B, Error>, FnC: Parser<Input, C, Error>, FnD: Parser<Input, D, Error>, FnE: Parser<Input, E, Error>, FnF: Parser<Input, F, Error>, FnG: Parser<Input, G, Error>, FnH: Parser<Input, H, Error>, FnI: Parser<Input, I, Error>, FnJ: Parser<Input, J, Error>, FnK: Parser<Input, K, Error>, FnL: Parser<Input, L, Error>, FnM: Parser<Input, M, Error>, FnN: Parser<Input, N, Error>, FnO: Parser<Input, O, Error>> Permutation<Input, (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O), Error> for (FnA, FnB, FnC, FnD, FnE, FnF, FnG, FnH, FnI, FnJ, FnK, FnL, FnM, FnN, FnO)

Source§

fn permutation( &mut self, input: Input, ) -> IResult<Input, (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O), Error>

Source§

impl<Input: Clone, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Error: ParseError<Input>, FnA: Parser<Input, A, Error>, FnB: Parser<Input, B, Error>, FnC: Parser<Input, C, Error>, FnD: Parser<Input, D, Error>, FnE: Parser<Input, E, Error>, FnF: Parser<Input, F, Error>, FnG: Parser<Input, G, Error>, FnH: Parser<Input, H, Error>, FnI: Parser<Input, I, Error>, FnJ: Parser<Input, J, Error>, FnK: Parser<Input, K, Error>, FnL: Parser<Input, L, Error>, FnM: Parser<Input, M, Error>, FnN: Parser<Input, N, Error>, FnO: Parser<Input, O, Error>, FnP: Parser<Input, P, Error>> Permutation<Input, (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P), Error> for (FnA, FnB, FnC, FnD, FnE, FnF, FnG, FnH, FnI, FnJ, FnK, FnL, FnM, FnN, FnO, FnP)

Source§

fn permutation( &mut self, input: Input, ) -> IResult<Input, (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P), Error>

Source§

impl<Input: Clone, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, Error: ParseError<Input>, FnA: Parser<Input, A, Error>, FnB: Parser<Input, B, Error>, FnC: Parser<Input, C, Error>, FnD: Parser<Input, D, Error>, FnE: Parser<Input, E, Error>, FnF: Parser<Input, F, Error>, FnG: Parser<Input, G, Error>, FnH: Parser<Input, H, Error>, FnI: Parser<Input, I, Error>, FnJ: Parser<Input, J, Error>, FnK: Parser<Input, K, Error>, FnL: Parser<Input, L, Error>, FnM: Parser<Input, M, Error>, FnN: Parser<Input, N, Error>, FnO: Parser<Input, O, Error>, FnP: Parser<Input, P, Error>, FnQ: Parser<Input, Q, Error>> Permutation<Input, (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q), Error> for (FnA, FnB, FnC, FnD, FnE, FnF, FnG, FnH, FnI, FnJ, FnK, FnL, FnM, FnN, FnO, FnP, FnQ)

Source§

impl<Input: Clone, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, Error: ParseError<Input>, FnA: Parser<Input, A, Error>, FnB: Parser<Input, B, Error>, FnC: Parser<Input, C, Error>, FnD: Parser<Input, D, Error>, FnE: Parser<Input, E, Error>, FnF: Parser<Input, F, Error>, FnG: Parser<Input, G, Error>, FnH: Parser<Input, H, Error>, FnI: Parser<Input, I, Error>, FnJ: Parser<Input, J, Error>, FnK: Parser<Input, K, Error>, FnL: Parser<Input, L, Error>, FnM: Parser<Input, M, Error>, FnN: Parser<Input, N, Error>, FnO: Parser<Input, O, Error>, FnP: Parser<Input, P, Error>, FnQ: Parser<Input, Q, Error>, FnR: Parser<Input, R, Error>> Permutation<Input, (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R), Error> for (FnA, FnB, FnC, FnD, FnE, FnF, FnG, FnH, FnI, FnJ, FnK, FnL, FnM, FnN, FnO, FnP, FnQ, FnR)

Source§

impl<Input: Clone, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, Error: ParseError<Input>, FnA: Parser<Input, A, Error>, FnB: Parser<Input, B, Error>, FnC: Parser<Input, C, Error>, FnD: Parser<Input, D, Error>, FnE: Parser<Input, E, Error>, FnF: Parser<Input, F, Error>, FnG: Parser<Input, G, Error>, FnH: Parser<Input, H, Error>, FnI: Parser<Input, I, Error>, FnJ: Parser<Input, J, Error>, FnK: Parser<Input, K, Error>, FnL: Parser<Input, L, Error>, FnM: Parser<Input, M, Error>, FnN: Parser<Input, N, Error>, FnO: Parser<Input, O, Error>, FnP: Parser<Input, P, Error>, FnQ: Parser<Input, Q, Error>, FnR: Parser<Input, R, Error>, FnS: Parser<Input, S, Error>> Permutation<Input, (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S), Error> for (FnA, FnB, FnC, FnD, FnE, FnF, FnG, FnH, FnI, FnJ, FnK, FnL, FnM, FnN, FnO, FnP, FnQ, FnR, FnS)

Source§

impl<Input: Clone, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, Error: ParseError<Input>, FnA: Parser<Input, A, Error>, FnB: Parser<Input, B, Error>, FnC: Parser<Input, C, Error>, FnD: Parser<Input, D, Error>, FnE: Parser<Input, E, Error>, FnF: Parser<Input, F, Error>, FnG: Parser<Input, G, Error>, FnH: Parser<Input, H, Error>, FnI: Parser<Input, I, Error>, FnJ: Parser<Input, J, Error>, FnK: Parser<Input, K, Error>, FnL: Parser<Input, L, Error>, FnM: Parser<Input, M, Error>, FnN: Parser<Input, N, Error>, FnO: Parser<Input, O, Error>, FnP: Parser<Input, P, Error>, FnQ: Parser<Input, Q, Error>, FnR: Parser<Input, R, Error>, FnS: Parser<Input, S, Error>, FnT: Parser<Input, T, Error>> Permutation<Input, (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T), Error> for (FnA, FnB, FnC, FnD, FnE, FnF, FnG, FnH, FnI, FnJ, FnK, FnL, FnM, FnN, FnO, FnP, FnQ, FnR, FnS, FnT)

Source§

impl<Input: Clone, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, Error: ParseError<Input>, FnA: Parser<Input, A, Error>, FnB: Parser<Input, B, Error>, FnC: Parser<Input, C, Error>, FnD: Parser<Input, D, Error>, FnE: Parser<Input, E, Error>, FnF: Parser<Input, F, Error>, FnG: Parser<Input, G, Error>, FnH: Parser<Input, H, Error>, FnI: Parser<Input, I, Error>, FnJ: Parser<Input, J, Error>, FnK: Parser<Input, K, Error>, FnL: Parser<Input, L, Error>, FnM: Parser<Input, M, Error>, FnN: Parser<Input, N, Error>, FnO: Parser<Input, O, Error>, FnP: Parser<Input, P, Error>, FnQ: Parser<Input, Q, Error>, FnR: Parser<Input, R, Error>, FnS: Parser<Input, S, Error>, FnT: Parser<Input, T, Error>, FnU: Parser<Input, U, Error>> Permutation<Input, (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U), Error> for (FnA, FnB, FnC, FnD, FnE, FnF, FnG, FnH, FnI, FnJ, FnK, FnL, FnM, FnN, FnO, FnP, FnQ, FnR, FnS, FnT, FnU)

Source§

impl<Input: Clone, A, B, C, D, Error: ParseError<Input>, FnA: Parser<Input, A, Error>, FnB: Parser<Input, B, Error>, FnC: Parser<Input, C, Error>, FnD: Parser<Input, D, Error>> Permutation<Input, (A, B, C, D), Error> for (FnA, FnB, FnC, FnD)

Source§

fn permutation(&mut self, input: Input) -> IResult<Input, (A, B, C, D), Error>

Source§

impl<Input: Clone, A, B, C, Error: ParseError<Input>, FnA: Parser<Input, A, Error>, FnB: Parser<Input, B, Error>, FnC: Parser<Input, C, Error>> Permutation<Input, (A, B, C), Error> for (FnA, FnB, FnC)

Source§

fn permutation(&mut self, input: Input) -> IResult<Input, (A, B, C), Error>

Source§

impl<Input: Clone, A, B, Error: ParseError<Input>, FnA: Parser<Input, A, Error>, FnB: Parser<Input, B, Error>> Permutation<Input, (A, B), Error> for (FnA, FnB)

Source§

fn permutation(&mut self, input: Input) -> IResult<Input, (A, B), Error>

Implementors§