pub struct Parser<'a, I, O> { /* private fields */ }Expand description
Parser combinator.
Implementations§
Source§impl<'a, I, O> Parser<'a, I, O>
impl<'a, I, O> Parser<'a, I, O>
Sourcepub fn parse_at(
&self,
input: &'a [I],
start: usize,
) -> Result<(O, usize, Option<Error>)>
pub fn parse_at( &self, input: &'a [I], start: usize, ) -> Result<(O, usize, Option<Error>)>
Parse input at specified position.
Sourcepub fn map<U, F>(self, f: F) -> Parser<'a, I, U>where
F: Fn(O) -> U + 'a,
I: 'a,
O: 'a,
U: 'a,
pub fn map<U, F>(self, f: F) -> Parser<'a, I, U>where
F: Fn(O) -> U + 'a,
I: 'a,
O: 'a,
U: 'a,
Convert parser result to desired value.
Sourcepub fn convert<U, E, F>(self, f: F) -> Parser<'a, I, U>
pub fn convert<U, E, F>(self, f: F) -> Parser<'a, I, U>
Convert parser result to desired value, fail in case of conversion error.
Sourcepub fn cache(self) -> Parser<'a, I, O>where
O: Clone + 'a,
pub fn cache(self) -> Parser<'a, I, O>where
O: Clone + 'a,
Cache parser output result to speed up backtracking.
pub fn debug_ok<S>(self, id: S) -> Parser<'a, I, O>
Sourcepub fn repeat<R>(self, range: R) -> Parser<'a, I, Vec<O>>
pub fn repeat<R>(self, range: R) -> Parser<'a, I, Vec<O>>
p.repeat(5) repeat p exactly 5 times
p.repeat(0..) repeat p zero or more times
p.repeat(1..) repeat p one or more times
p.repeat(1..4) match p at least 1 and at most 3 times
Sourcepub fn name(self, name: &'a str) -> Parser<'a, I, O>where
O: 'a,
pub fn name(self, name: &'a str) -> Parser<'a, I, O>where
O: 'a,
Give parser a name to identify parsing errors, and stops rollback tracing propagation.
Trait Implementations§
Source§impl<'a, I: 'a, O: 'a, U: 'a> Mul<Parser<'a, I, U>> for Parser<'a, I, O>
Sequence discard first value
impl<'a, I: 'a, O: 'a, U: 'a> Mul<Parser<'a, I, U>> for Parser<'a, I, O>
Sequence discard first value
Auto Trait Implementations§
impl<'a, I, O> Freeze for Parser<'a, I, O>
impl<'a, I, O> !RefUnwindSafe for Parser<'a, I, O>
impl<'a, I, O> !Send for Parser<'a, I, O>
impl<'a, I, O> !Sync for Parser<'a, I, O>
impl<'a, I, O> Unpin for Parser<'a, I, O>
impl<'a, I, O> !UnwindSafe for Parser<'a, I, O>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more