Struct proc_macro::TokenStream
1.15.0 · source · [−]pub struct TokenStream(_);
Expand description
The main type provided by this crate, representing an abstract stream of tokens, or, more specifically, a sequence of token trees. The type provide interfaces for iterating over those token trees and, conversely, collecting a number of token trees into one stream.
This is both the input and output of #[proc_macro]
, #[proc_macro_attribute]
and #[proc_macro_derive]
definitions.
Implementations
sourceimpl TokenStream
impl TokenStream
1.29.0 · sourcepub fn new() -> TokenStream
pub fn new() -> TokenStream
Returns an empty TokenStream
containing no token trees.
sourcepub fn expand_expr(&self) -> Result<TokenStream, ExpandError>
pub fn expand_expr(&self) -> Result<TokenStream, ExpandError>
Parses this TokenStream
as an expression and attempts to expand any
macros within it. Returns the expanded TokenStream
.
Currently only expressions expanding to literals will succeed, although this may be relaxed in the future.
NOTE: In error conditions, expand_expr
may leave macros unexpanded,
report an error, failing compilation, and/or return an Err(..)
. The
specific behavior for any error condition, and what conditions are
considered errors, is unspecified and may change in the future.
Trait Implementations
sourceimpl Clone for TokenStream
impl Clone for TokenStream
sourcefn clone(&self) -> TokenStream
fn clone(&self) -> TokenStream
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl Debug for TokenStream
impl Debug for TokenStream
Prints token in a form convenient for debugging.
1.45.0 · sourceimpl Default for TokenStream
impl Default for TokenStream
sourceimpl Display for TokenStream
impl Display for TokenStream
Prints the token stream as a string that is supposed to be losslessly convertible back
into the same token stream (modulo spans), except for possibly TokenTree::Group
s
with Delimiter::None
delimiters and negative numeric literals.
1.30.0 · sourceimpl Extend<TokenStream> for TokenStream
impl Extend<TokenStream> for TokenStream
sourcefn extend<I: IntoIterator<Item = TokenStream>>(&mut self, streams: I)
fn extend<I: IntoIterator<Item = TokenStream>>(&mut self, streams: I)
Extends a collection with the contents of an iterator. Read more
sourcefn extend_reserve(&mut self, additional: usize)
fn extend_reserve(&mut self, additional: usize)
Reserves capacity in a collection for the given number of additional elements. Read more
1.30.0 · sourceimpl Extend<TokenTree> for TokenStream
impl Extend<TokenTree> for TokenStream
sourcefn extend<I: IntoIterator<Item = TokenTree>>(&mut self, trees: I)
fn extend<I: IntoIterator<Item = TokenTree>>(&mut self, trees: I)
Extends a collection with the contents of an iterator. Read more
sourcefn extend_reserve(&mut self, additional: usize)
fn extend_reserve(&mut self, additional: usize)
Reserves capacity in a collection for the given number of additional elements. Read more
1.29.0 · sourceimpl From<TokenTree> for TokenStream
impl From<TokenTree> for TokenStream
Creates a token stream containing a single token tree.
sourcefn from(tree: TokenTree) -> TokenStream
fn from(tree: TokenTree) -> TokenStream
Converts to this type from the input type.
sourceimpl FromIterator<TokenStream> for TokenStream
impl FromIterator<TokenStream> for TokenStream
A “flattening” operation on token streams, collects token trees from multiple token streams into a single stream.
sourcefn from_iter<I: IntoIterator<Item = TokenStream>>(streams: I) -> Self
fn from_iter<I: IntoIterator<Item = TokenStream>>(streams: I) -> Self
Creates a value from an iterator. Read more
1.29.0 · sourceimpl FromIterator<TokenTree> for TokenStream
impl FromIterator<TokenTree> for TokenStream
Collects a number of token trees into a single stream.
sourcefn from_iter<I: IntoIterator<Item = TokenTree>>(trees: I) -> Self
fn from_iter<I: IntoIterator<Item = TokenTree>>(trees: I) -> Self
Creates a value from an iterator. Read more
sourceimpl FromStr for TokenStream
impl FromStr for TokenStream
Attempts to break the string into tokens and parse those tokens into a token stream.
May fail for a number of reasons, for example, if the string contains unbalanced delimiters
or characters not existing in the language.
All tokens in the parsed stream get Span::call_site()
spans.
NOTE: some errors may cause panics instead of returning LexError
. We reserve the right to
change these errors into LexError
s later.
1.29.0 · sourceimpl IntoIterator for TokenStream
impl IntoIterator for TokenStream
sourceimpl ToString for TokenStream
impl ToString for TokenStream
impl !Send for TokenStream
impl !Sync for TokenStream
Auto Trait Implementations
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more