Struct Progress

Source
pub struct Progress<P, T, E> {
    pub point: P,
    pub status: Status<T, E>,
}
Expand description

Tracks where the parser currently is and if it is successful.

On success, some value has been parsed. On failure, nothing has been parsed and the value indicates the reason for the failure. The returned point indicates where to next start parsing, often unchanged on failure.

Fields§

§point: P

The current location.

§status: Status<T, E>

If the point indicates the location of a successful or failed parse.

Implementations§

Source§

impl<P, T, E> Progress<P, T, E>

Source

pub fn success(point: P, val: T) -> Progress<P, T, E>

Source

pub fn failure(point: P, val: E) -> Progress<P, T, E>

Source

pub fn map<F, T2>(self, f: F) -> Progress<P, T2, E>
where F: FnOnce(T) -> T2,

Convert the success value, if there is one.

Source

pub fn map_err<F, E2>(self, f: F) -> Progress<P, T, E2>
where F: FnOnce(E) -> E2,

Convert the failure value, if there is one.

Source

pub fn optional(self, reset_to: P) -> (P, Option<T>)

Returns the value on success, or rewinds the point and returns None on failure.

Trait Implementations§

Source§

impl<P: Debug, T: Debug, E: Debug> Debug for Progress<P, T, E>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<P: PartialEq, T: PartialEq, E: PartialEq> PartialEq for Progress<P, T, E>

Source§

fn eq(&self, other: &Progress<P, T, E>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<P, T, E> StructuralPartialEq for Progress<P, T, E>

Auto Trait Implementations§

§

impl<P, T, E> Freeze for Progress<P, T, E>
where P: Freeze, T: Freeze, E: Freeze,

§

impl<P, T, E> RefUnwindSafe for Progress<P, T, E>

§

impl<P, T, E> Send for Progress<P, T, E>
where P: Send, T: Send, E: Send,

§

impl<P, T, E> Sync for Progress<P, T, E>
where P: Sync, T: Sync, E: Sync,

§

impl<P, T, E> Unpin for Progress<P, T, E>
where P: Unpin, T: Unpin, E: Unpin,

§

impl<P, T, E> UnwindSafe for Progress<P, T, E>
where P: UnwindSafe, T: UnwindSafe, E: UnwindSafe,

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

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<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.