[][src]Struct rcombinators::combinators::Transform

pub struct Transform<R, R2, P: Parser<Result = R>, F: Fn(R) -> ParseResult<R2>> { /* fields omitted */ }

Transform applies a function (which may fail) to the result of a parser. Transform only succeeds if the applied function succeeds, too.

Methods

impl<R, R2, P: Parser<Result = R>, F: Fn(R) -> ParseResult<R2>> Transform<R, R2, P, F>[src]

pub fn new(p: P, f: F) -> Transform<R, R2, P, F>[src]

Create a new Transform parser using f.

Trait Implementations

impl<R, R2, P: Parser<Result = R>, F: Fn(R) -> ParseResult<R2>> Parser for Transform<R, R2, P, F>[src]

type Result = R2

fn apply<R2, F: Fn(Self::Result) -> ParseResult<R2>>(
    self,
    f: F
) -> Transform<Self::Result, R2, Self, F> where
    Self: Sized
[src]

apply transforms the result of this parser using a Transform combinator.

fn then<R2, P: Parser<Result = R2>>(self, p: P) -> Then<Self, P> where
    Self: Sized
[src]

then attempts to parse input, and if it succeeds, executes parser p, only returning p's result. This is useful for chaining parsers of which the results are not need. Read more

Auto Trait Implementations

impl<R, R2, P, F> Send for Transform<R, R2, P, F> where
    F: Send,
    P: Send

impl<R, R2, P, F> Sync for Transform<R, R2, P, F> where
    F: Sync,
    P: Sync

Blanket Implementations

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> From<T> for T[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]