Struct Span
struct Span<'i> { ... }
A span over a &str. It is created from either two Positions or from a Pair.
Implementations
impl<'i> Span<'i>
fn new(input: &str, start: usize, end: usize) -> Option<Span<'_>>Attempts to create a new span. Will return
Noneifinput[start..end]is an invalid index intoinput.Examples
# use Span; let input = "Hello!"; assert_eq!; assert!;fn get<impl RangeBounds<usize>: RangeBounds<usize>>(self: &Self, range: impl RangeBounds<usize>) -> Option<Span<'i>>Attempts to create a new span based on a sub-range.
use Span; let input = "Hello World!"; let world = new.unwrap; let orl = world.get; assert!; assert_eq!;Examples
fn start(self: &Self) -> usizeReturns the
Span's start byte position as ausize.Examples
# use Position; let input = "ab"; let start = from_start; let end = start.clone; let span = start.span; assert_eq!;fn end(self: &Self) -> usizeReturns the
Span's end byte position as ausize.Examples
# use Position; let input = "ab"; let start = from_start; let end = start.clone; let span = start.span; assert_eq!;fn start_pos(self: &Self) -> Position<'i>Returns the
Span's startPosition.Examples
# use Position; let input = "ab"; let start = from_start; let end = start.clone; let span = start.clone.span; assert_eq!;fn end_pos(self: &Self) -> Position<'i>Returns the
Span's endPosition.Examples
# use Position; let input = "ab"; let start = from_start; let end = start.clone; let span = start.span; assert_eq!;fn split(self: Self) -> (Position<'i>, Position<'i>)Splits the
Spaninto a pair ofPositions.Examples
# use Position; let input = "ab"; let start = from_start; let end = start.clone; let span = start.clone.span; assert_eq!;fn as_str(self: &Self) -> &'i strCaptures a slice from the
&strdefined by theSpan.Examples
# use pest; # # let input = "abc"; let mut state: = new.skip.unwrap; let start_pos = state.position.clone; state = state.match_string.unwrap; let span = start_pos.span; assert_eq!;fn get_input(self: &Self) -> &'i strReturns the input string of the
Span.This function returns the input string of the
Spanas a&str. This is the source string from which theSpanwas created. The returned&strcan be used to examine the contents of theSpanor to perform further processing on the string.Examples
# use pest; # use Span; // Example: Get input string from a span let input = "abc\ndef\nghi"; let span = new.unwrap; assert_eq!;fn lines(self: &Self) -> Lines<'_>Iterates over all lines (partially) covered by this span. Yielding a
&strfor each line.Examples
# use pest; # # let input = "a\nb\nc"; let mut state: = new.skip.unwrap; let start_pos = state.position.clone; state = state.match_string.unwrap; let span = start_pos.span; assert_eq!;fn lines_span(self: &Self) -> LinesSpan<'_>Iterates over all lines (partially) covered by this span. Yielding a
Spanfor each line.Examples
# use pest; # use Span; # # let input = "a\nb\nc"; let mut state: = new.skip.unwrap; let start_pos = state.position.clone; state = state.match_string.unwrap; let span = start_pos.span; assert_eq!;
impl<'i> Clone for Span<'i>
fn clone(self: &Self) -> Span<'i>
impl<'i> Copy for Span<'i>
impl<'i> Debug for Span<'i>
fn fmt(self: &Self, f: &mut Formatter<'_>) -> Result
impl<'i> Eq for Span<'i>
impl<'i> Freeze for Span<'i>
impl<'i> Hash for Span<'i>
fn hash<H: Hasher>(self: &Self, state: &mut H)
impl<'i> PartialEq for Span<'i>
fn eq(self: &Self, other: &Span<'i>) -> bool
impl<'i> RefUnwindSafe for Span<'i>
impl<'i> Send for Span<'i>
impl<'i> Sync for Span<'i>
impl<'i> Unpin for Span<'i>
impl<'i> UnsafeUnpin for Span<'i>
impl<'i> UnwindSafe for Span<'i>
impl<T> Any for Span<'i>
fn type_id(self: &Self) -> TypeId
impl<T> Borrow for Span<'i>
fn borrow(self: &Self) -> &T
impl<T> BorrowMut for Span<'i>
fn borrow_mut(self: &mut Self) -> &mut T
impl<T> CloneToUninit for Span<'i>
unsafe fn clone_to_uninit(self: &Self, dest: *mut u8)
impl<T> From for Span<'i>
fn from(t: T) -> TReturns the argument unchanged.
impl<T> ToOwned for Span<'i>
fn to_owned(self: &Self) -> Tfn clone_into(self: &Self, target: &mut T)
impl<T, U> Into for Span<'i>
fn into(self: Self) -> UCalls
U::from(self).That is, this conversion is whatever the implementation of
[From]<T> for Uchooses to do.
impl<T, U> TryFrom for Span<'i>
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
impl<T, U> TryInto for Span<'i>
fn try_into(self: Self) -> Result<U, <U as TryFrom<T>>::Error>