Struct rustc_ast::tokenstream::TokenStream
source · [−]Expand description
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
backwards compatibility.
Tuple Fields
0: Lrc<Vec<TokenTree>>
Implementations
sourceimpl TokenStream
impl TokenStream
sourcepub fn add_comma(&self) -> Option<(TokenStream, Span)>
pub fn add_comma(&self) -> Option<(TokenStream, Span)>
Given a TokenStream
with a Stream
of only two arguments, return a new TokenStream
separating the two arguments with a comma for diagnostic suggestions.
sourceimpl TokenStream
impl TokenStream
pub fn new(streams: Vec<TokenTree>) -> TokenStream
pub fn is_empty(&self) -> bool
pub fn len(&self) -> usize
pub fn trees(&self) -> CursorRef<'_>ⓘNotable traits for CursorRef<'t>impl<'t> Iterator for CursorRef<'t> type Item = &'t TokenTree;
pub fn into_trees(self) -> CursorⓘNotable traits for Cursorimpl Iterator for Cursor type Item = TokenTree;
sourcepub fn eq_unspanned(&self, other: &TokenStream) -> bool
pub fn eq_unspanned(&self, other: &TokenStream) -> bool
Compares two TokenStream
s, checking equality without regarding span information.
pub fn map_enumerated<F: FnMut(usize, &TokenTree) -> TokenTree>(
self,
f: F
) -> TokenStream
pub fn token_alone(kind: TokenKind, span: Span) -> TokenStream
pub fn token_joint(kind: TokenKind, span: Span) -> TokenStream
pub fn delimited(
span: DelimSpan,
delim: Delimiter,
tts: TokenStream
) -> TokenStream
pub fn from_ast(
node: &impl HasAttrs + HasSpan + HasTokens + Debug
) -> TokenStream
pub fn from_nonterminal_ast(nt: &Nonterminal) -> TokenStream
fn flatten_token(token: &Token, spacing: Spacing) -> TokenTree
fn flatten_token_tree(tree: &TokenTree) -> TokenTree
pub fn flattened(&self) -> TokenStream
Trait Implementations
sourceimpl Clone for TokenStream
impl Clone for TokenStream
sourcefn clone(&self) -> TokenStream
fn clone(&self) -> TokenStream
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresourceimpl Debug for TokenStream
impl Debug for TokenStream
sourceimpl Default for TokenStream
impl Default for TokenStream
sourcefn default() -> TokenStream
fn default() -> TokenStream
sourceimpl FromIterator<TokenTree> for TokenStream
impl FromIterator<TokenTree> for TokenStream
sourcefn from_iter<I: IntoIterator<Item = TokenTree>>(iter: I) -> Self
fn from_iter<I: IntoIterator<Item = TokenTree>>(iter: I) -> Self
sourceimpl<CTX> HashStable<CTX> for TokenStreamwhere
CTX: HashStableContext,
impl<CTX> HashStable<CTX> for TokenStreamwhere
CTX: HashStableContext,
fn hash_stable(&self, hcx: &mut CTX, hasher: &mut StableHasher)
sourceimpl PartialEq<TokenStream> for TokenStream
impl PartialEq<TokenStream> for TokenStream
sourcefn eq(&self, other: &TokenStream) -> bool
fn eq(&self, other: &TokenStream) -> bool
impl Eq for TokenStream
Auto Trait Implementations
impl !RefUnwindSafe for TokenStream
impl !Send for TokenStream
impl !Sync for TokenStream
impl Unpin for TokenStream
impl !UnwindSafe for TokenStream
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Layout
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference’s “Type Layout” chapter for details on type layout guarantees.
Size: 8 bytes