logo
pub trait Parser<I, O, E> {
    fn parse(&mut self, input: I) -> Result<(I, O), Err<E>>;

    fn map<G, O2>(self, g: G) -> Map<Self, G, O>
    where
        G: Fn(O) -> O2
, { ... } fn flat_map<G, H, O2>(self, g: G) -> FlatMap<Self, G, O>
    where
        G: FnMut(O) -> H,
        H: Parser<I, O2, E>
, { ... } fn and_then<G, O2>(self, g: G) -> AndThen<Self, G, O>
    where
        G: Parser<O, O2, E>
, { ... } fn and<G, O2>(self, g: G) -> And<Self, G>
    where
        G: Parser<I, O2, E>
, { ... } fn or<G>(self, g: G) -> Or<Self, G>
    where
        G: Parser<I, O, E>
, { ... } fn into<O2, E2>(self) -> Into<Self, O, O2, E, E2>
    where
        O2: From<O>,
        E2: From<E>
, { ... } }
Available on crate feature mtls only.
Expand description

All nom parsers implement this trait

Required Methods

A parser takes in input type, and returns a Result containing either the remaining input and the output value, or an error

Provided Methods

Maps a function over the result of a parser

Creates a second parser from the output of the first one, then apply over the rest of the input

Applies a second parser over the output of the first one

Applies a second parser after the first one, return their results as a tuple

Applies a second parser over the input if the first one failed

automatically converts the parser’s output and error values to another type, as long as they implement the From trait

Implementors