# Struct nom::AndThen

source · [−]

    pub struct AndThen<F, G, O1> { /* private fields */ }

Expand description

Implementation of `Parser::and_then`

## Trait Implementations

source

### 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>

source

#### fn parse(&mut self, i: I) -> IResult<I, O2, E>

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

source

#### fn map<G, O2>(self, g: G) -> Map<Self, G, O> where
G: Fn(O) -> O2,
Self: Sized,

Maps a function over the result of a parser

source

#### fn flat_map<G, H, O2>(self, g: G) -> FlatMap<Self, G, O> where
G: FnMut(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

source

#### fn and_then<G, O2>(self, g: G) -> AndThen<Self, G, O> where
G: Parser<O, O2, E>,
Self: Sized,

Applies a second parser over the output of the first one

source

#### fn and<G, O2>(self, g: G) -> And<Self, G> where
G: Parser<I, O2, E>,
Self: Sized,

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

source

#### fn or<G>(self, g: G) -> Or<Self, G> where
G: Parser<I, O, E>,
Self: Sized,

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

source

#### fn into<O2: From<O>, E2: From<E>>(self) -> Into<Self, O, O2, E, E2> where
Self: Sized,

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

## Auto Trait Implementations

### impl<F, G, O1> RefUnwindSafe for AndThen<F, G, O1> where
F: RefUnwindSafe,
G: RefUnwindSafe,
O1: RefUnwindSafe,

### impl<F, G, O1> Send for AndThen<F, G, O1> where
F: Send,
G: Send,
O1: Send,

### impl<F, G, O1> Sync for AndThen<F, G, O1> where
F: Sync,
G: Sync,
O1: Sync,

### impl<F, G, O1> Unpin for AndThen<F, G, O1> where
F: Unpin,
G: Unpin,
O1: Unpin,

### impl<F, G, O1> UnwindSafe for AndThen<F, G, O1> where
F: UnwindSafe,
G: UnwindSafe,
O1: UnwindSafe,

## Blanket Implementations

source

### impl<T> Any for T where
T: 'static + ?Sized,

source

#### fn type_id(&self) -> TypeId

Gets the `TypeId` of `self`. Read more

source

### impl<T> Borrow<T> for T where
T: ?Sized,

const: unstable · source

#### fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more

source

### impl<T> BorrowMut<T> for T where
T: ?Sized,

const: unstable · source

#### fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more

source

### impl<T> From<T> for T

const: unstable · source

#### fn from(t: T) -> T

Returns the argument unchanged.

source

### impl<T, U> Into<U> for T where
U: From<T>,

const: unstable · source

#### fn into(self) -> U

Calls `U::from(self)`.

That is, this conversion is whatever the implementation of `From<T> for U` chooses to do.

source

### impl<T, U> TryFrom<U> for T where
U: Into<T>,

#### type Error = Infallible

The type returned in the event of a conversion error.

const: unstable · source

#### fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.

source

### impl<T, U> TryInto<U> for T where
U: TryFrom<T>,

#### type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

const: unstable · source

#### fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.