[−][src]Struct syn::buffer::Cursor
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()
.
Two cursors are equal if they have the same location in the same input stream, and have the same scope.
See the module documentation for an example of a Cursor
in action.
This type is available if Syn is built with the "parsing"
feature.
Implementations
impl<'a> Cursor<'a>
[src]
pub fn empty() -> Self
[src]
Creates a cursor referencing a static empty TokenStream.
pub fn eof(self) -> bool
[src]
Checks whether the cursor is currently pointing at the end of its valid scope.
pub fn group(self, delim: Delimiter) -> Option<(Cursor<'a>, Span, Cursor<'a>)>
[src]
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
.
pub fn ident(self) -> Option<(Ident, Cursor<'a>)>
[src]
If the cursor is pointing at a Ident
, returns it along with a cursor
pointing at the next TokenTree
.
pub fn punct(self) -> Option<(Punct, Cursor<'a>)>
[src]
If the cursor is pointing at an Punct
, returns it along with a cursor
pointing at the next TokenTree
.
pub fn literal(self) -> Option<(Literal, Cursor<'a>)>
[src]
If the cursor is pointing at a Literal
, return it along with a cursor
pointing at the next TokenTree
.
pub fn token_stream(self) -> TokenStream
[src]
Copies all remaining tokens visible from this cursor into a
TokenStream
.
pub fn token_tree(self) -> Option<(TokenTree, Cursor<'a>)>
[src]
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.
pub fn span(self) -> Span
[src]
Returns the Span
of the current token, or Span::call_site()
if this
cursor points to eof.
Trait Implementations
impl<'a> Clone for Cursor<'a>
[src]
impl<'a> Copy for Cursor<'a>
[src]
impl<'a> Eq for Cursor<'a>
[src]
impl<'a> PartialEq<Cursor<'a>> for Cursor<'a>
[src]
impl<'a> StructuralEq for Cursor<'a>
[src]
impl<'a> StructuralPartialEq for Cursor<'a>
[src]
Auto Trait Implementations
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
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
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>,