Struct TokenStream

pub struct TokenStream { /* private fields */ }

An abstract stream of tokens, or more concretely a sequence of token trees.

This type provides interfaces for iterating over token trees and for collecting token trees into one stream.

Token stream is both the input and output of #[proc_macro], #[proc_macro_attribute] and #[proc_macro_derive] definitions.

Implementations

impl TokenStream

fn new() -> Self

Returns an empty TokenStream containing no token trees.

fn is_empty(&self) -> bool

Checks if this TokenStream is empty.

Trait Implementations

impl Clone for TokenStream

fn clone(&self) -> TokenStream

impl Debug for TokenStream

fn fmt(&self, f: &mut Formatter<'_>) -> Result

impl Default for TokenStream

fn default() -> Self

impl Display for TokenStream

fn fmt(&self, f: &mut Formatter<'_>) -> Result

impl Extend<Group> for TokenStream

fn extend<I: IntoIterator<Item = Group>>(&mut self, tokens: I)

impl Extend<Ident> for TokenStream

fn extend<I: IntoIterator<Item = Ident>>(&mut self, tokens: I)

impl Extend<Literal> for TokenStream

fn extend<I: IntoIterator<Item = Literal>>(&mut self, tokens: I)

impl Extend<Punct> for TokenStream

fn extend<I: IntoIterator<Item = Punct>>(&mut self, tokens: I)

impl Extend<TokenStream> for TokenStream

fn extend<I: IntoIterator<Item = TokenStream>>(&mut self, streams: I)

impl Extend<TokenTree> for TokenStream

fn extend<I: IntoIterator<Item = TokenTree>>(&mut self, tokens: I)

impl From<TokenStream> for TokenStream

fn from(inner: TokenStream) -> Self

impl From<TokenTree> for TokenStream

fn from(token: TokenTree) -> Self

impl FromIterator<TokenStream> for TokenStream

fn from_iter<I: IntoIterator<Item = TokenStream>>(streams: I) -> Self

impl FromIterator<TokenTree> for TokenStream

fn from_iter<I: IntoIterator<Item = TokenTree>>(tokens: I) -> Self

impl FromStr for TokenStream

type Err = LexError;
fn from_str(src: &str) -> Result<TokenStream, LexError>

impl IntoIterator for TokenStream

type Item = TokenTree;
type IntoIter = IntoIter;
fn into_iter(self) -> IntoIter

Auto Trait Implementations

impl !Send for TokenStream

impl !Sync for TokenStream

impl Freeze for TokenStream

impl RefUnwindSafe for TokenStream

impl Unpin for TokenStream

impl UnsafeUnpin for TokenStream

impl UnwindSafe for TokenStream

Blanket Implementations

impl<T> Any for TokenStream where T: 'static + ?Sized,

fn type_id(&self) -> TypeId

impl<T> Borrow<T> for TokenStream where T: ?Sized,

fn borrow(&self) -> &T

impl<T> BorrowMut<T> for TokenStream where T: ?Sized,

fn borrow_mut(&mut self) -> &mut T

impl<T> CloneToUninit for TokenStream where T: Clone,

unsafe fn clone_to_uninit(&self, dest: *mut u8)

impl<T> From<T> for TokenStream

fn from(t: T) -> T

Returns the argument unchanged.

impl<T> ToOwned for TokenStream where T: Clone,

type Owned = T;
fn to_owned(&self) -> T
fn clone_into(&self, target: &mut T)

impl<T> ToString for TokenStream where T: Display + ?Sized,

fn to_string(&self) -> String

impl<T, U> Into<U> for TokenStream where U: From<T>,

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of [From]<T> for U chooses to do.

impl<T, U> TryFrom<U> for TokenStream where U: Into<T>,

type Error = never;
fn try_from(value: U) -> Result<T, never>

impl<T, U> TryInto<U> for TokenStream where U: TryFrom<T>,

type Error = <U as TryFrom<T>>::Error;
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>