pub struct Cursor<'a> { /* private fields */ }parsing only.Expand description
A cheaply copyable cursor into a TokenBuffer.
This cursor holds a shared reference into the immutable data which is used
internally to represent a TokenStream, and can be efficiently manipulated
and copied around.
An empty Cursor can be created directly, or one may create a TokenBuffer
object and get a cursor to its first token with begin().
Implementations§
Source§impl<'a> Cursor<'a>
impl<'a> Cursor<'a>
Sourcepub fn eof(self) -> bool
pub fn eof(self) -> bool
Checks whether the cursor is currently pointing at the end of its valid scope.
Sourcepub fn group(
self,
delim: Delimiter,
) -> Option<(Cursor<'a>, DelimSpan, Cursor<'a>)>
pub fn group( self, delim: Delimiter, ) -> Option<(Cursor<'a>, DelimSpan, Cursor<'a>)>
If the cursor is pointing at a Group with the given delimiter, returns
a cursor into that group and one pointing to the next TokenTree.
Sourcepub fn ident(self) -> Option<(Ident, Cursor<'a>)>
pub fn ident(self) -> Option<(Ident, Cursor<'a>)>
If the cursor is pointing at a Ident, returns it along with a cursor
pointing at the next TokenTree.
Sourcepub fn punct(self) -> Option<(Punct, Cursor<'a>)>
pub fn punct(self) -> Option<(Punct, Cursor<'a>)>
If the cursor is pointing at a Punct, returns it along with a cursor
pointing at the next TokenTree.
Sourcepub fn literal(self) -> Option<(Literal, Cursor<'a>)>
pub fn literal(self) -> Option<(Literal, Cursor<'a>)>
If the cursor is pointing at a Literal, return it along with a cursor
pointing at the next TokenTree.
Sourcepub fn lifetime(self) -> Option<(Lifetime, Cursor<'a>)>
pub fn lifetime(self) -> Option<(Lifetime, Cursor<'a>)>
If the cursor is pointing at a Lifetime, returns it along with a
cursor pointing at the next TokenTree.
Sourcepub fn token_stream(self) -> TokenStream
pub fn token_stream(self) -> TokenStream
Copies all remaining tokens visible from this cursor into a
TokenStream.
Sourcepub fn token_tree(self) -> Option<(TokenTree, Cursor<'a>)>
pub fn token_tree(self) -> Option<(TokenTree, Cursor<'a>)>
If the cursor is pointing at a TokenTree, returns it along with a
cursor pointing at the next TokenTree.
Returns None if the cursor has reached the end of its stream.
This method does not treat None-delimited groups as transparent, and
will return a Group(None, ..) if the cursor is looking at one.
Trait Implementations§
Source§impl<'a> PartialOrd for Cursor<'a>
impl<'a> PartialOrd for Cursor<'a>
Source§fn partial_cmp(&self, other: &Self) -> Option<Ordering>
fn partial_cmp(&self, other: &Self) -> Option<Ordering>
Source§#[doc(hidden)]fn __chaining_lt(&self, other: &Rhs) -> ControlFlow<bool>
#[doc(hidden)]fn __chaining_lt(&self, other: &Rhs) -> ControlFlow<bool>
partial_ord_chaining_methods)self == other, returns ControlFlow::Continue(()).
Otherwise, returns ControlFlow::Break(self < other). Read moreSource§#[doc(hidden)]fn __chaining_le(&self, other: &Rhs) -> ControlFlow<bool>
#[doc(hidden)]fn __chaining_le(&self, other: &Rhs) -> ControlFlow<bool>
partial_ord_chaining_methods)__chaining_lt, but for <= instead of <.Source§#[doc(hidden)]fn __chaining_gt(&self, other: &Rhs) -> ControlFlow<bool>
#[doc(hidden)]fn __chaining_gt(&self, other: &Rhs) -> ControlFlow<bool>
partial_ord_chaining_methods)__chaining_lt, but for > instead of <.Source§#[doc(hidden)]fn __chaining_ge(&self, other: &Rhs) -> ControlFlow<bool>
#[doc(hidden)]fn __chaining_ge(&self, other: &Rhs) -> ControlFlow<bool>
partial_ord_chaining_methods)__chaining_lt, but for >= instead of <.impl<'a> Copy for Cursor<'a>
Auto Trait Implementations§
impl<'a> Freeze for Cursor<'a>
impl<'a> RefUnwindSafe for Cursor<'a>
impl<'a> !Send for Cursor<'a>
impl<'a> !Sync for Cursor<'a>
impl<'a> Unpin for Cursor<'a>
impl<'a> UnwindSafe for Cursor<'a>
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> SizedTypeProperties for T
impl<T> SizedTypeProperties for T
Source§#[doc(hidden)]const SIZE: usize = _
#[doc(hidden)]const SIZE: usize = _
sized_type_properties)Source§#[doc(hidden)]const ALIGN: usize = _
#[doc(hidden)]const ALIGN: usize = _
sized_type_properties)Source§#[doc(hidden)]const IS_ZST: bool = _
#[doc(hidden)]const IS_ZST: bool = _
sized_type_properties)Source§#[doc(hidden)]const LAYOUT: Layout = _
#[doc(hidden)]const LAYOUT: Layout = _
sized_type_properties)Source§#[doc(hidden)]const MAX_SLICE_LEN: usize = _
#[doc(hidden)]const MAX_SLICE_LEN: usize = _
sized_type_properties)[Self]. Read more