[][src]Struct rcombinators::combinators::Sequence

pub struct Sequence<T>(_);

Sequence concatenates parsers and only succeeds if all of them do. T is always a tuple in order for Sequence to implement the Parser trait. The result is a tuple of all the parser results.

Individual parsers need to have result types implementing Default.

Methods

impl<T> Sequence<T>[src]

pub fn new(tuple: T) -> Sequence<T>[src]

Trait Implementations

impl<P0: Parser<Result = impl Default>, P1: Parser<Result = impl Default>> Parser for Sequence<(P0, P1)>[src]

type Result = (P0::Result, P1::Result)

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

impl<P0: Parser<Result = impl Default>, P1: Parser<Result = impl Default>, P2: Parser<Result = impl Default>> Parser for Sequence<(P0, P1, P2)>[src]

type Result = (P0::Result, P1::Result, P2::Result)

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

impl<P0: Parser<Result = impl Default>, P1: Parser<Result = impl Default>, P2: Parser<Result = impl Default>, P3: Parser<Result = impl Default>> Parser for Sequence<(P0, P1, P2, P3)>[src]

type Result = (P0::Result, P1::Result, P2::Result, P3::Result)

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

impl<P0: Parser<Result = impl Default>, P1: Parser<Result = impl Default>, P2: Parser<Result = impl Default>, P3: Parser<Result = impl Default>, P4: Parser<Result = impl Default>> Parser for Sequence<(P0, P1, P2, P3, P4)>[src]

type Result = (P0::Result, P1::Result, P2::Result, P3::Result, P4::Result)

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

impl<P0: Parser<Result = impl Default>, P1: Parser<Result = impl Default>, P2: Parser<Result = impl Default>, P3: Parser<Result = impl Default>, P4: Parser<Result = impl Default>, P5: Parser<Result = impl Default>> Parser for Sequence<(P0, P1, P2, P3, P4, P5)>[src]

type Result = (P0::Result, P1::Result, P2::Result, P3::Result, P4::Result, P5::Result)

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

impl<P0: Parser<Result = impl Default>, P1: Parser<Result = impl Default>, P2: Parser<Result = impl Default>, P3: Parser<Result = impl Default>, P4: Parser<Result = impl Default>, P5: Parser<Result = impl Default>, P6: Parser<Result = impl Default>> Parser for Sequence<(P0, P1, P2, P3, P4, P5, P6)>[src]

type Result = (P0::Result, P1::Result, P2::Result, P3::Result, P4::Result, P5::Result, P6::Result)

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

impl<P0: Parser<Result = impl Default>, P1: Parser<Result = impl Default>, P2: Parser<Result = impl Default>, P3: Parser<Result = impl Default>, P4: Parser<Result = impl Default>, P5: Parser<Result = impl Default>, P6: Parser<Result = impl Default>, P7: Parser<Result = impl Default>> Parser for Sequence<(P0, P1, P2, P3, P4, P5, P6, P7)>[src]

type Result = (P0::Result, P1::Result, P2::Result, P3::Result, P4::Result, P5::Result, P6::Result, P7::Result)

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

impl<P0: Parser<Result = impl Default>, P1: Parser<Result = impl Default>, P2: Parser<Result = impl Default>, P3: Parser<Result = impl Default>, P4: Parser<Result = impl Default>, P5: Parser<Result = impl Default>, P6: Parser<Result = impl Default>, P7: Parser<Result = impl Default>, P8: Parser<Result = impl Default>> Parser for Sequence<(P0, P1, P2, P3, P4, P5, P6, P7, P8)>[src]

type Result = (P0::Result, P1::Result, P2::Result, P3::Result, P4::Result, P5::Result, P6::Result, P7::Result, P8::Result)

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

impl<P0: Parser<Result = impl Default>, P1: Parser<Result = impl Default>, P2: Parser<Result = impl Default>, P3: Parser<Result = impl Default>, P4: Parser<Result = impl Default>, P5: Parser<Result = impl Default>, P6: Parser<Result = impl Default>, P7: Parser<Result = impl Default>, P8: Parser<Result = impl Default>, P9: Parser<Result = impl Default>> Parser for Sequence<(P0, P1, P2, P3, P4, P5, P6, P7, P8, P9)>[src]

type Result = (P0::Result, P1::Result, P2::Result, P3::Result, P4::Result, P5::Result, P6::Result, P7::Result, P8::Result, P9::Result)

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<T> Send for Sequence<T> where
    T: Send

impl<T> Sync for Sequence<T> where
    T: 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]