pub struct Cursor<'a> { /* fields omitted */ }
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.
Creates a cursor referencing a static empty TokenStream.
Checks whether the cursor is currently pointing at the end of its valid
scope.
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
.
If the cursor is pointing at a Term
, returns it along with a cursor
pointing at the next TokenTree
.
If the cursor is pointing at an Op
, returns it along with a cursor
pointing at the next TokenTree
.
If the cursor is pointing at a Literal
, return it along with a cursor
pointing at the next TokenTree
.
Copies all remaining tokens visible from this cursor into a
TokenStream
.
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.
Returns the Span
of the current token, or Span::call_site()
if this
cursor points to eof.
Performs copy-assignment from source
. Read more
This method tests for self
and other
values to be equal, and is used by ==
. Read more
This method tests for !=
.
Creates owned data from borrowed data, usually by cloning. Read more
🔬 This is a nightly-only experimental API. (toowned_clone_into
)
recently added
Uses borrowed data to replace owned data, usually by cloning. Read more
🔬 This is a nightly-only experimental API. (try_from
)
The type returned in the event of a conversion error.
🔬 This is a nightly-only experimental API. (try_from
)
Immutably borrows from an owned value. Read more
🔬 This is a nightly-only experimental API. (get_type_id
)
this method will likely be replaced by an associated static
🔬 This is a nightly-only experimental API. (try_from
)
The type returned in the event of a conversion error.
🔬 This is a nightly-only experimental API. (try_from
)
Mutably borrows from an owned value. Read more
🔬 This is a nightly-only experimental API. (rustc_private
)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml
instead?
Create an error for a missing method specialization. Defaults to panicking with type, trait & method names. S
is the encoder/decoder state type, T
is the type being encoded/decoded, and the arguments are the names of the trait and method that should've been overridden. Read more