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

Returns an empty TokenStream containing no token trees.

Checks if this TokenStream is empty.

🔬This is a nightly-only experimental API. (proc_macro_expand #90765)

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

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more

Prints token in a form convenient for debugging.

Formats the value using the given formatter. Read more
Returns the “default value” for a type. Read more

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::Groups with Delimiter::None delimiters and negative numeric literals.

Formats the value using the given formatter. Read more
Extends a collection with the contents of an iterator. Read more
🔬This is a nightly-only experimental API. (extend_one #72631)
Extends a collection with exactly one element.
🔬This is a nightly-only experimental API. (extend_one #72631)
Reserves capacity in a collection for the given number of additional elements. Read more
Extends a collection with the contents of an iterator. Read more
🔬This is a nightly-only experimental API. (extend_one #72631)
Extends a collection with exactly one element.
🔬This is a nightly-only experimental API. (extend_one #72631)
Reserves capacity in a collection for the given number of additional elements. Read more

Creates a token stream containing a single token tree.

Converts to this type from the input type.

A “flattening” operation on token streams, collects token trees from multiple token streams into a single stream.

Creates a value from an iterator. Read more

Collects a number of token trees into a single stream.

Creates a value from an iterator. Read more

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 LexErrors later.

The associated error which can be returned from parsing.
Parses a string s to return a value of this type. Read more
The type of the elements being iterated over.
Which kind of iterator are we turning this into?
Creates an iterator from a value. Read more
Converts the given value to a String. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

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

The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
Uses borrowed data to replace owned data, usually by cloning. Read more
Converts the given value to a String. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.