Trait nom::Parser [−][src]
pub trait Parser<I, O, E> { fn parse(&mut self, input: I) -> IResult<I, O, E>; fn map<G, O2>(self, g: G) -> Map<Self, G, O>
where
G: Fn(O) -> O2,
Self: Sized, { ... } fn flat_map<G, H, O2>(self, g: G) -> FlatMap<Self, G, O>
where
G: Fn(O) -> H,
H: Parser<I, O2, E>,
Self: Sized, { ... } fn and_then<G, O2>(self, g: G) -> AndThen<Self, G, O>
where
G: Parser<O, O2, E>,
Self: Sized, { ... } fn and<G, O2>(self, g: G) -> And<Self, G>
where
G: Parser<I, O2, E>,
Self: Sized, { ... } fn or<G>(self, g: G) -> Or<Self, G>
where
G: Parser<I, O, E>,
Self: Sized, { ... } fn into<O2: From<O>, E2: From<E>>(self) -> Into<Self, O, O2, E, E2>
where
Self: Sized, { ... } }
All nom parsers implement this trait
Required methods
fn parse(&mut self, input: I) -> IResult<I, O, E>
[src]
A parser takes in input type, and returns a Result
containing
either the remaining input and the output value, or an error
Provided methods
fn map<G, O2>(self, g: G) -> Map<Self, G, O> where
G: Fn(O) -> O2,
Self: Sized,
[src]
G: Fn(O) -> O2,
Self: Sized,
Maps a function over the result of a parser
fn flat_map<G, H, O2>(self, g: G) -> FlatMap<Self, G, O> where
G: Fn(O) -> H,
H: Parser<I, O2, E>,
Self: Sized,
[src]
G: Fn(O) -> H,
H: Parser<I, O2, E>,
Self: Sized,
Creates a second parser from the output of the first one, then apply over the rest of the input
fn and_then<G, O2>(self, g: G) -> AndThen<Self, G, O> where
G: Parser<O, O2, E>,
Self: Sized,
[src]
G: Parser<O, O2, E>,
Self: Sized,
Applies a second parser over the output of the first one
fn and<G, O2>(self, g: G) -> And<Self, G> where
G: Parser<I, O2, E>,
Self: Sized,
[src]
G: Parser<I, O2, E>,
Self: Sized,
Applies a second parser after the first one, return their results as a tuple
fn or<G>(self, g: G) -> Or<Self, G> where
G: Parser<I, O, E>,
Self: Sized,
[src]
G: Parser<I, O, E>,
Self: Sized,
Applies a second parser over the input if the first one failed
fn into<O2: From<O>, E2: From<E>>(self) -> Into<Self, O, O2, E, E2> where
Self: Sized,
[src]
Self: Sized,
automatically converts the parser’s output and error values to another type, as long as they
implement the From
trait
Implementors
impl<'a, I, O1, O2, E, F: Parser<I, O1, E>, G: Fn(O1) -> H, H: Parser<I, O2, E>> Parser<I, O2, E> for FlatMap<F, G, O1>
[src]
impl<'a, I, O1, O2, E, F: Parser<I, O1, E>, G: Fn(O1) -> O2> Parser<I, O2, E> for Map<F, G, O1>
[src]
impl<'a, I, O1, O2, E, F: Parser<I, O1, E>, G: Parser<I, O2, E>> Parser<I, (O1, O2), E> for And<F, G>
[src]
impl<'a, I, O1, O2, E, F: Parser<I, O1, E>, G: Parser<O1, O2, E>> Parser<I, O2, E> for AndThen<F, G, O1>
[src]
impl<'a, I, O, E, F> Parser<I, O, E> for F where
F: FnMut(I) -> IResult<I, O, E> + 'a,
[src]
F: FnMut(I) -> IResult<I, O, E> + 'a,