[−][src]Struct pest::Position
A cursor position in a &str
which provides useful methods to manually parse that string.
Methods
impl<'i> Position<'i>
[src]
pub fn new(input: &str, pos: usize) -> Option<Position>
[src]
Attempts to create a new Position
at the given position. If the specified position is
an invalid index, or the specified position is not a valid UTF8 boundary, then None is
returned.
Examples
let cheart = '💖'; let heart = "💖"; assert_eq!(Position::new(heart, 1), None); assert_ne!(Position::new(heart, cheart.len_utf8()), None);
pub fn from_start(input: &'i str) -> Position<'i>
[src]
Creates a Position
at the start of a &str
.
Examples
let start = Position::from_start(""); assert_eq!(start.pos(), 0);
pub fn pos(&self) -> usize
[src]
Returns the byte position of this Position
as a usize
.
Examples
let input = "ab"; let mut start = Position::from_start(input); assert_eq!(start.pos(), 0);
pub fn span(&self, other: &Position<'i>) -> Span<'i>
[src]
Creates a Span
from two Position
s.
Panics
Panics if the positions come from different inputs.
Examples
let input = "ab"; let start = Position::from_start(input); let span = start.span(&start.clone()); assert_eq!(span.start(), 0); assert_eq!(span.end(), 0);
pub fn line_col(&self) -> (usize, usize)
[src]
Returns the line and column number of this Position
.
Examples
enum Rule {} let input = "\na"; let mut state: Box<pest::ParserState<Rule>> = pest::ParserState::new(input); let mut result = state.match_string("\na"); assert!(result.is_ok()); assert_eq!(result.unwrap().position().line_col(), (2, 2));
pub fn line_of(&self) -> &'i str
[src]
Returns the entire line of the input that contains this Position
.
Examples
enum Rule {} let input = "\na"; let mut state: Box<pest::ParserState<Rule>> = pest::ParserState::new(input); let mut result = state.match_string("\na"); assert!(result.is_ok()); assert_eq!(result.unwrap().position().line_of(), "a");
Trait Implementations
impl<'i> Clone for Position<'i>
[src]
fn clone(&self) -> Position<'i>
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
Performs copy-assignment from source
. Read more
impl<'i> Ord for Position<'i>
[src]
fn cmp(&self, other: &Position<'i>) -> Ordering
[src]
fn max(self, other: Self) -> Self
1.21.0[src]
Compares and returns the maximum of two values. Read more
fn min(self, other: Self) -> Self
1.21.0[src]
Compares and returns the minimum of two values. Read more
fn clamp(self, min: Self, max: Self) -> Self
[src]
clamp
)Restrict a value to a certain interval. Read more
impl<'i> Eq for Position<'i>
[src]
impl<'i> PartialOrd<Position<'i>> for Position<'i>
[src]
fn partial_cmp(&self, other: &Position<'i>) -> Option<Ordering>
[src]
#[must_use]
fn lt(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests less than (for self
and other
) and is used by the <
operator. Read more
#[must_use]
fn le(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
#[must_use]
fn gt(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests greater than (for self
and other
) and is used by the >
operator. Read more
#[must_use]
fn ge(&self, other: &Rhs) -> bool
1.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> PartialEq<Position<'i>> for Position<'i>
[src]
fn eq(&self, other: &Position<'i>) -> bool
[src]
#[must_use]
fn ne(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests for !=
.
impl<'i> Debug for Position<'i>
[src]
impl<'i> Hash for Position<'i>
[src]
Auto Trait Implementations
Blanket Implementations
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,