Struct chumsky::combinator::MapErr

source ·
pub struct MapErr<A, F>(_, _);
Expand description

Trait Implementations§

source§

impl<A: Clone, F: Clone> Clone for MapErr<A, F>

source§

fn clone(&self) -> MapErr<A, F>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<I: Clone, O, A: Parser<I, O, Error = E>, F: Fn(E) -> E, E: Error<I>> Parser<I, O> for MapErr<A, F>

§

type Error = E

The type of errors emitted by this parser.
source§

fn parse_recovery<'a, Iter, S>( &self, stream: S ) -> (Option<O>, Vec<Self::Error>)where Self: Sized, Iter: Iterator<Item = (I, <Self::Error as Error<I>>::Span)> + 'a, S: Into<Stream<'a, I, <Self::Error as Error<I>>::Span, Iter>>,

Parse a stream of tokens, yielding an output if possible, and any errors encountered along the way. Read more
source§

fn parse_recovery_verbose<'a, Iter, S>( &self, stream: S ) -> (Option<O>, Vec<Self::Error>)where Self: Sized, Iter: Iterator<Item = (I, <Self::Error as Error<I>>::Span)> + 'a, S: Into<Stream<'a, I, <Self::Error as Error<I>>::Span, Iter>>,

Parse a stream of tokens, yielding an output if possible, and any errors encountered along the way. Unlike Parser::parse_recovery, this function will produce verbose debugging output as it executes. Read more
source§

fn parse<'a, Iter, S>(&self, stream: S) -> Result<O, Vec<Self::Error>>where Self: Sized, Iter: Iterator<Item = (I, <Self::Error as Error<I>>::Span)> + 'a, S: Into<Stream<'a, I, <Self::Error as Error<I>>::Span, Iter>>,

Parse a stream of tokens, yielding an output or any errors that were encountered along the way. Read more
source§

fn debug<T>(self, x: T) -> Debug<Self>where Self: Sized, T: Display + 'static,

Include this parser in the debugging output produced by Parser::parse_recovery_verbose. Read more
source§

fn map<U, F>(self, f: F) -> Map<Self, F, O>where Self: Sized, F: Fn(O) -> U,

Map the output of this parser to another value. Read more
source§

fn map_with_span<U, F>(self, f: F) -> MapWithSpan<Self, F, O>where Self: Sized, F: Fn(O, <Self::Error as Error<I>>::Span) -> U,

Map the output of this parser to another value, making use of the pattern’s span when doing so. Read more
source§

fn map_err<F>(self, f: F) -> MapErr<Self, F>where Self: Sized, F: Fn(Self::Error) -> Self::Error,

Map the primary error of this parser to another value. Read more
source§

fn or_else<F>(self, f: F) -> OrElse<Self, F>where Self: Sized, F: Fn(Self::Error) -> Result<O, Self::Error>,

Map the primary error of this parser to a result. If the result is Ok, the parser succeeds with that value. Read more
source§

fn map_err_with_span<F>(self, f: F) -> MapErrWithSpan<Self, F>where Self: Sized, F: Fn(Self::Error, <Self::Error as Error<I>>::Span) -> Self::Error,

Map the primary error of this parser to another value, making use of the span from the start of the attempted to the point at which the error was encountered. Read more
source§

fn try_map<U, F>(self, f: F) -> TryMap<Self, F, O>where Self: Sized, F: Fn(O, <Self::Error as Error<I>>::Span) -> Result<U, Self::Error>,

After a successful parse, apply a fallible function to the output. If the function produces an error, treat it as a parsing error. Read more
source§

fn validate<F, U>(self, f: F) -> Validate<Self, O, F>where Self: Sized, F: Fn(O, <Self::Error as Error<I>>::Span, &mut dyn FnMut(Self::Error)) -> U,

Validate an output, producing non-terminal errors if it does not fulfil certain criteria. Read more
source§

fn labelled<L>(self, label: L) -> Label<Self, L>where Self: Sized, L: Into<<Self::Error as Error<I>>::Label> + Clone,

Label the pattern parsed by this parser for more useful error messages. Read more
source§

fn to<U>(self, x: U) -> To<Self, O, U>where Self: Sized, U: Clone,

Transform all outputs of this parser to a pretermined value. Read more
source§

fn foldl<A, B, F>(self, f: F) -> Foldl<Self, F, A, B>where Self: Parser<I, (A, B)> + Sized, B: IntoIterator, F: Fn(A, B::Item) -> A,

Left-fold the output of the parser into a single value. Read more
source§

fn foldr<'a, A, B, F>(self, f: F) -> Foldr<Self, F, A, B>where Self: Parser<I, (A, B)> + Sized, A: IntoIterator, A::IntoIter: DoubleEndedIterator, F: Fn(A::Item, B) -> B + 'a,

Right-fold the output of the parser into a single value. Read more
source§

fn ignored(self) -> Ignored<Self, O>where Self: Sized,

Ignore the output of this parser, yielding () as an output instead. Read more
source§

fn then<U, P>(self, other: P) -> Then<Self, P>where Self: Sized, P: Parser<I, U, Error = Self::Error>,

Parse one thing and then another thing, yielding a tuple of the two outputs. Read more
source§

fn then_with<U, P, F: Fn(O) -> P>( self, other: F ) -> ThenWith<I, O, U, Self, P, F>where Self: Sized, P: Parser<I, U, Error = Self::Error>,

Parse one thing and then another thing, creating the second parser from the result of the first. If you only have a couple cases to handle, prefer Parser::or. Read more
source§

fn chain<T, U, P>( self, other: P ) -> Map<Then<Self, P>, fn(_: (O, U)) -> Vec<T>, (O, U)>where Self: Sized, U: Chain<T>, O: Chain<T>, P: Parser<I, U, Error = Self::Error>,

Parse one thing and then another thing, attempting to chain the two outputs into a Vec. Read more
source§

fn ignore_then<U, P>(self, other: P) -> IgnoreThen<Self, P, O, U>where Self: Sized, P: Parser<I, U, Error = Self::Error>,

Parse one thing and then another thing, yielding only the output of the latter. Read more
source§

fn then_ignore<U, P>(self, other: P) -> ThenIgnore<Self, P, O, U>where Self: Sized, P: Parser<I, U, Error = Self::Error>,

Parse one thing and then another thing, yielding only the output of the former. Read more
source§

fn padded_by<U, P>( self, other: P ) -> ThenIgnore<IgnoreThen<P, Self, U, O>, P, O, U>where Self: Sized, P: Parser<I, U, Error = Self::Error> + Clone,

Parse a pattern, but with an instance of another pattern on either end, yielding the output of the inner. Read more
source§

fn delimited_by<U, V, L, R>( self, start: L, end: R ) -> DelimitedBy<Self, L, R, U, V>where Self: Sized, L: Parser<I, U, Error = Self::Error>, R: Parser<I, V, Error = Self::Error>,

Parse the pattern surrounded by the given delimiters. Read more
source§

fn or<P>(self, other: P) -> Or<Self, P>where Self: Sized, P: Parser<I, O, Error = Self::Error>,

Parse one thing or, on failure, another thing. Read more
source§

fn recover_with<S>(self, strategy: S) -> Recovery<Self, S>where Self: Sized, S: Strategy<I, O, Self::Error>,

Apply a fallback recovery strategy to this parser should it fail. Read more
source§

fn or_not(self) -> OrNot<Self>where Self: Sized,

Attempt to parse something, but only if it exists. Read more
source§

fn not(self) -> Not<Self, O>where Self: Sized,

Parses a single token if, and only if, the pattern fails to parse. Read more
source§

fn repeated(self) -> Repeated<Self>where Self: Sized,

Parse a pattern any number of times (including zero times). Read more
source§

fn separated_by<U, P>(self, other: P) -> SeparatedBy<Self, P, U>where Self: Sized, P: Parser<I, U, Error = Self::Error>,

Parse a pattern, separated by another, any number of times. Read more
source§

fn rewind(self) -> Rewind<Self>where Self: Sized,

Parse a pattern. Afterwards, the input stream will be rewound to its original state, as if parsing had not occurred. Read more
source§

fn boxed<'a>(self) -> BoxedParser<'a, I, O, Self::Error>where Self: Sized + 'a,

Box the parser, yielding a parser that performs parsing through dynamic dispatch. Read more
source§

fn unwrapped<U, E>(self) -> Unwrapped<Self, E, <Self as Parser<I, O>>::Error>where Self: Sized + Parser<I, Result<U, E>>, E: Debug,

For parsers that produce a Result as their output, unwrap the result (panicking if an Err is encountered). Read more
source§

impl<A: Copy, F: Copy> Copy for MapErr<A, F>

Auto Trait Implementations§

§

impl<A, F> RefUnwindSafe for MapErr<A, F>where A: RefUnwindSafe, F: RefUnwindSafe,

§

impl<A, F> Send for MapErr<A, F>where A: Send, F: Send,

§

impl<A, F> Sync for MapErr<A, F>where A: Sync, F: Sync,

§

impl<A, F> Unpin for MapErr<A, F>where A: Unpin, F: Unpin,

§

impl<A, F> UnwindSafe for MapErr<A, F>where A: UnwindSafe, F: UnwindSafe,

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

const: unstable · source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> Chain<T> for T

source§

fn len(&self) -> usize

The number of items that this chain link consists of.
source§

fn append_to(self, v: &mut Vec<T, Global>)

Append the elements in this link to the chain.
source§

impl<T> Container<T> for Twhere T: Clone,

§

type Iter = Once<T>

An iterator over the items within this container, by value.
source§

fn get_iter(&self) -> <T as Container<T>>::Iter

Iterate over the elements of the container (using internal iteration because GATs are unstable).
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 Twhere 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<I, O, P> TextParser<I, O> for Pwhere I: Character, P: Parser<I, O>,

source§

fn padded(self) -> Padded<Self>where Self: Sized,

Parse a pattern, ignoring any amount of whitespace both before and after the pattern. Read more
source§

impl<T> ToOwned for Twhere T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere 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 Twhere 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.
source§

impl<T> OrderedContainer<T> for Twhere T: Clone,