[][src]Struct syntax::tokenstream::TokenStream

pub struct TokenStream(pub Option<Lrc<Vec<TreeAndJoint>>>);

Token Streams

A TokenStream is an abstract sequence of tokens, organized into TokenTrees. The goal is for procedural macros to work with TokenStreams and TokenTrees instead of a representation of the abstract syntax tree. Today's TokenTrees 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 Cursor
pub fn trees(&self) -> Cursor[src]

Important traits for Cursor
pub 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]

pub fn map<F: FnMut(TokenTree) -> TokenTree>(self, f: F) -> TokenStream[src]

Trait Implementations

impl Eq for TokenStream[src]

impl PartialEq<TokenStream> for TokenStream[src]

#[must_use]
fn ne(&self, other: &Rhs) -> bool
1.0.0[src]

This method tests for !=.

impl Clone for TokenStream[src]

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl From<TokenTree> for TokenStream[src]

impl Debug for TokenStream[src]

impl Display for TokenStream[src]

impl<T: Into<TokenStream>> FromIterator<T> for TokenStream[src]

impl Encodable for TokenStream[src]

impl Decodable for TokenStream[src]

Auto Trait Implementations

impl !Send for TokenStream

impl !Sync for TokenStream

Blanket Implementations

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Encodable for T where
    T: UseSpecializedEncodable + ?Sized
[src]

impl<T> Decodable for T where
    T: UseSpecializedDecodable
[src]

impl<E> SpecializationError for E[src]

impl<Q, K> Equivalent<K> for Q where
    K: Borrow<Q> + ?Sized,
    Q: Eq + ?Sized
[src]

impl<T> Send for T where
    T: ?Sized
[src]

impl<T> Sync for T where
    T: ?Sized
[src]

impl<T> Erased for T[src]