Struct pest::span::Span
[−]
[src]
pub struct Span<'i> { /* fields omitted */ }A struct of a span over a &str. It is created from either
two Positions or from a
Pair.
Methods
impl<'i> Span<'i>[src]
fn start(&self) -> usize[src]
Returns the Span's start byte position as a usize.
Examples
let input = "ab"; let start = Position::from_start(input); let end = start.clone().match_string("ab").unwrap(); let span = start.span(&end); assert_eq!(span.start(), 0);
fn end(&self) -> usize[src]
Returns the Span's end byte position as a usize.
Examples
let input = "ab"; let start = Position::from_start(input); let end = start.clone().match_string("ab").unwrap(); let span = start.span(&end); assert_eq!(span.end(), 2);
fn start_pos(&self) -> Position<'i>[src]
Returns the Span's start Position.
Examples
let input = "ab"; let start = Position::from_start(input); let end = start.clone().match_string("ab").unwrap(); let span = start.clone().span(&end); assert_eq!(span.start_pos(), start);
fn end_pos(&self) -> Position<'i>[src]
Returns the Span's end Position.
Examples
let input = "ab"; let start = Position::from_start(input); let end = start.clone().match_string("ab").unwrap(); let span = start.span(&end); assert_eq!(span.end_pos(), end);
fn split(self) -> (Position<'i>, Position<'i>)[src]
Splits the Span into a pair of Positions.
Examples
let input = "ab"; let start = Position::from_start(input); let end = start.clone().match_string("ab").unwrap(); let span = start.clone().span(&end); assert_eq!(span.split(), (start, end));
fn as_str(&self) -> &'i str[src]
Captures a slice from the &str defined by the Span.
Examples
let input = "abc"; let start = Position::from_start(input).skip(1).unwrap(); let end = start.clone().match_string("b").unwrap(); let span = start.span(&end); assert_eq!(span.as_str(), "b");
Trait Implementations
impl<'i> Debug for Span<'i>[src]
impl<'i> Clone for Span<'i>[src]
fn clone(&self) -> Span<'i>[src]
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)1.0.0[src]
Performs copy-assignment from source. Read more
impl<'i> PartialEq for Span<'i>[src]
fn eq(&self, other: &Span<'i>) -> bool[src]
This method tests for self and other values to be equal, and is used by ==. Read more
fn ne(&self, other: &Rhs) -> bool1.0.0[src]
This method tests for !=.
impl<'i> Eq for Span<'i>[src]
impl<'i> PartialOrd for Span<'i>[src]
fn partial_cmp(&self, other: &Span<'i>) -> Option<Ordering>[src]
This method returns an ordering between self and other values if one exists. Read more
fn lt(&self, other: &Rhs) -> bool1.0.0[src]
This method tests less than (for self and other) and is used by the < operator. Read more
fn le(&self, other: &Rhs) -> bool1.0.0[src]
This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
fn gt(&self, other: &Rhs) -> bool1.0.0[src]
This method tests greater than (for self and other) and is used by the > operator. Read more
fn ge(&self, other: &Rhs) -> bool1.0.0[src]
This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
impl<'i> Ord for Span<'i>[src]
fn cmp(&self, other: &Span<'i>) -> Ordering[src]
This method returns an Ordering between self and other. Read more
fn max(self, other: Self) -> Self1.22.0[src]
Compares and returns the maximum of two values. Read more
fn min(self, other: Self) -> Self1.22.0[src]
Compares and returns the minimum of two values. Read more