[−][src]Struct syntax::tokenstream::TokenStream
Token Streams
A TokenStream
is an abstract sequence of tokens, organized into TokenTree
s.
The goal is for procedural macros to work with TokenStream
s and TokenTree
s
instead of a representation of the abstract syntax tree.
Today's TokenTree
s can still contain AST via token::Interpolated
for back-compat.
The use of Option
is an optimization that avoids the need for an
allocation when the stream is empty. However, it is not guaranteed that an
empty stream is represented with None
; it may be represented as a Some
around an empty Vec
.
Methods
impl TokenStream
[src]
pub fn len(&self) -> usize
[src]
pub fn empty() -> TokenStream
[src]
pub fn is_empty(&self) -> bool
[src]
pub fn new(streams: Vec<TreeAndJoint>) -> TokenStream
[src]
pub fn append_to_tree_and_joint_vec(self, vec: &mut Vec<TreeAndJoint>)
[src]
ⓘImportant traits for Cursorpub fn trees(&self) -> Cursor
[src]
ⓘImportant traits for Cursorpub fn into_trees(self) -> Cursor
[src]
pub fn eq_unspanned(&self, other: &TokenStream) -> bool
[src]
Compares two TokenStreams, checking equality without regarding span information.
pub fn probably_equal_for_proc_macro(&self, other: &TokenStream) -> bool
[src]
pub fn map_enumerated<F: FnMut(usize, TokenTree) -> TokenTree>(
self,
f: F
) -> TokenStream
[src]
self,
f: F
) -> TokenStream
pub fn map<F: FnMut(TokenTree) -> TokenTree>(self, f: F) -> TokenStream
[src]
Trait Implementations
impl Clone for TokenStream
[src]
fn clone(&self) -> TokenStream
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
Performs copy-assignment from source
. Read more
impl Eq for TokenStream
[src]
impl From<TokenTree> for TokenStream
[src]
fn from(tree: TokenTree) -> TokenStream
[src]
impl PartialEq<TokenStream> for TokenStream
[src]
fn eq(&self, other: &TokenStream) -> bool
[src]
#[must_use]
fn ne(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests for !=
.
impl Display for TokenStream
[src]
impl Debug for TokenStream
[src]
impl<T: Into<TokenStream>> FromIterator<T> for TokenStream
[src]
fn from_iter<I: IntoIterator<Item = T>>(iter: I) -> Self
[src]
impl Encodable for TokenStream
[src]
impl Decodable for TokenStream
[src]
Auto Trait Implementations
impl !Sync for TokenStream
impl Unpin for TokenStream
impl !Send for TokenStream
impl !RefUnwindSafe for TokenStream
impl !UnwindSafe for TokenStream
Blanket Implementations
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> From<T> for T
[src]
impl<T> ToString for T where
T: Display + ?Sized,
[src]
T: Display + ?Sized,
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,
impl<T> Encodable for T where
T: UseSpecializedEncodable + ?Sized,
[src]
T: UseSpecializedEncodable + ?Sized,
impl<T> Decodable for T where
T: UseSpecializedDecodable,
[src]
T: UseSpecializedDecodable,
impl<E> SpecializationError for E
[src]
default fn not_found<S, T>(
trait_name: &'static str,
method_name: &'static str
) -> E where
T: ?Sized,
[src]
trait_name: &'static str,
method_name: &'static str
) -> E where
T: ?Sized,
impl<Q, K> Equivalent<K> for Q where
K: Borrow<Q> + ?Sized,
Q: Eq + ?Sized,
[src]
K: Borrow<Q> + ?Sized,
Q: Eq + ?Sized,