Trait nom::InputIter
[−]
[src]
pub trait InputIter { type Item; type RawItem; type Iter: Iterator<Item = (usize, Self::Item)>; type IterElem: Iterator<Item = Self::Item>; fn iter_indices(&self) -> Self::Iter; fn iter_elements(&self) -> Self::IterElem; fn position<P>(&self, predicate: P) -> Option<usize>
where
P: Fn(Self::RawItem) -> bool; fn slice_index(&self, count: usize) -> Option<usize>; }
abstracts common iteration operations on the input type
it needs a distinction between Item
and RawItem
because
&[T]
iterates on references
Associated Types
type Item
type RawItem
type Iter: Iterator<Item = (usize, Self::Item)>
type IterElem: Iterator<Item = Self::Item>
Required Methods
fn iter_indices(&self) -> Self::Iter
returns an iterator over the elements and their byte offsets
fn iter_elements(&self) -> Self::IterElem
returns an iterator over the elements
fn position<P>(&self, predicate: P) -> Option<usize> where
P: Fn(Self::RawItem) -> bool,
P: Fn(Self::RawItem) -> bool,
finds the byte position of the element
fn slice_index(&self, count: usize) -> Option<usize>
get the byte offset from the element's position in the stream