Trait nom::error::ParseError

source ·
pub trait ParseError<I>: Sized {
    // Required methods
    fn from_error_kind(input: I, kind: ErrorKind) -> Self;
    fn append(input: I, kind: ErrorKind, other: Self) -> Self;

    // Provided methods
    fn from_char(input: I, _: char) -> Self { ... }
    fn or(self, other: Self) -> Self { ... }
    fn add_context(_input: I, _ctx: &'static str, other: Self) -> Self { ... }
}
Expand description

this trait must be implemented by the error type of a nom parser

There are already implementations of it for (Input, ErrorKind) and VerboseError<Input>.

It provides methods to create an error from some combinators, and combine existing errors in combinators like alt

Required Methods§

source

fn from_error_kind(input: I, kind: ErrorKind) -> Self

creates an error from the input position and an ErrorKind

source

fn append(input: I, kind: ErrorKind, other: Self) -> Self

combines an existing error with a new one created from the input positionsition and an ErrorKind. This is useful when backtracking through a parse tree, accumulating error context on the way

Provided Methods§

source

fn from_char(input: I, _: char) -> Self

creates an error from an input position and an expected character

source

fn or(self, other: Self) -> Self

combines two existing error. This function is used to compare errors generated in various branches of [alt]

source

fn add_context(_input: I, _ctx: &'static str, other: Self) -> Self

create a new error from an input position, a static string and an existing error. This is used mainly in the context combinator, to add user friendly information to errors when backtracking through a parse tree

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl<I> ParseError<I> for (I, ErrorKind)

source§

fn from_error_kind(input: I, kind: ErrorKind) -> Self

source§

fn append(_: I, _: ErrorKind, other: Self) -> Self

source§

impl<I> ParseError<I> for ()

source§

fn from_error_kind(_: I, _: ErrorKind) -> Self

source§

fn append(_: I, _: ErrorKind, _: Self) -> Self

Implementors§