[][src]Struct combine::stream::easy::Errors

pub struct Errors<I, R, P> {
    pub position: P,
    pub errors: Vec<Error<I, R>>,
}

Struct which hold information about an error that occurred at a specific position. Can hold multiple instances of Error if more that one error occurred in the same position.

Fields

position: P

The position where the error occurred

errors: Vec<Error<I, R>>

A vector containing specific information on what errors occurred at position. Usually a fully formed message contains one Unexpected error and one or more Expected errors. Message and Other may also appear (combine never generates these errors on its own) and may warrant custom handling.

Methods

impl<I, R, P> Errors<I, R, P>[src]

pub fn new(position: P, error: Error<I, R>) -> Errors<I, R, P>[src]

Constructs a new ParseError which occurred at position.

pub fn empty(position: P) -> Errors<I, R, P>[src]

Constructs an error with no other information than the position it occurred at.

pub fn from_errors(position: P, errors: Vec<Error<I, R>>) -> Errors<I, R, P>[src]

Constructs a ParseError with multiple causes.

pub fn end_of_input(position: P) -> Errors<I, R, P>[src]

Constructs an end of input error. Should be returned by parsers which encounter end of input unexpectedly.

pub fn add_error(&mut self, error: Error<I, R>) where
    I: PartialEq,
    R: PartialEq
[src]

Adds an error if error does not exist in this ParseError already (as determined byte PartialEq).

pub fn set_expected(&mut self, info: Info<I, R>)[src]

Removes all Expected errors in self and adds info instead.

pub fn merge(self, other: Errors<I, R, P>) -> Errors<I, R, P> where
    P: Ord,
    I: PartialEq,
    R: PartialEq
[src]

Merges two ParseErrors. If they exist at the same position the errors of other are added to self (using add_error to skip duplicates). If they are not at the same position the error furthest ahead are returned, ignoring the other ParseError.

pub fn map_position<F, Q>(self, f: F) -> Errors<I, R, Q> where
    F: FnOnce(P) -> Q, 
[src]

Maps the position to a new value

pub fn map_token<F, U>(self, f: F) -> Errors<U, R, P> where
    F: FnMut(I) -> U, 
[src]

Maps all token variants to a new value

pub fn map_range<F, S>(self, f: F) -> Errors<I, S, P> where
    F: FnMut(R) -> S, 
[src]

Maps all range variants to a new value.

use combine::Parser;
use combine::parser::range::range;
println!(
    "{}",
    range(&"HTTP"[..])
        .easy_parse("HTT")
        .unwrap_err()
        .map_range(|bytes| format!("{:?}", bytes))
);

Trait Implementations

impl<Item, Range, Position> ParseError<Item, Range, Position> for Errors<Item, Range, Position> where
    Item: PartialEq,
    Range: PartialEq,
    Position: Ord
[src]

type StreamError = Error<Item, Range>

fn add_expected(&mut self, info: Info<Item, Range>)[src]

fn add_unexpected(&mut self, info: Info<Item, Range>)[src]

fn add_message(&mut self, info: Info<Item, Range>)[src]

impl<I: PartialEq, R: PartialEq, P: PartialEq> PartialEq<Errors<I, R, P>> for Errors<I, R, P>[src]

impl<I: Debug, R: Debug, P: Debug> Debug for Errors<I, R, P>[src]

impl<I, R, P> Display for Errors<I, R, P> where
    P: Display,
    I: Display,
    R: Display
[src]

impl<I, R, P> Error for Errors<I, R, P> where
    P: Display + Debug,
    I: Display + Debug,
    R: Display + Debug
[src]

fn cause(&self) -> Option<&dyn Error>
1.0.0
[src]

Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

The lower-level cause of this error, if any. Read more

fn source(&self) -> Option<&(dyn Error + 'static)>
1.30.0
[src]

The lower-level source of this error, if any. Read more

Auto Trait Implementations

impl<I, R, P> Send for Errors<I, R, P> where
    I: Send,
    P: Send,
    R: Send

impl<I, R, P> Sync for Errors<I, R, P> where
    I: Sync,
    P: Sync,
    R: Sync

Blanket Implementations

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T> From for T[src]

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

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

type Error = !

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

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

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

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

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

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

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