pub trait ToTokens {
// Required method
fn to_tokens(&self, tokens: &mut TokenStream);
// Provided methods
fn to_token_stream(&self) -> TokenStream { ... }
fn into_token_stream(self) -> TokenStream
where Self: Sized { ... }
}Expand description
Types that can be interpolated inside a quote! invocation.
Required Methods§
Sourcefn to_tokens(&self, tokens: &mut TokenStream)
fn to_tokens(&self, tokens: &mut TokenStream)
Write self to the given TokenStream.
The token append methods provided by the TokenStreamExt extension
trait may be useful for implementing ToTokens.
§Example
Example implementation for a struct representing Rust paths like
std::cmp::PartialEq:
use proc_macro2::{TokenTree, Spacing, Span, Punct, TokenStream};
use quote::{TokenStreamExt, ToTokens};
pub struct Path {
pub global: bool,
pub segments: Vec<PathSegment>,
}
impl ToTokens for Path {
fn to_tokens(&self, tokens: &mut TokenStream) {
for (i, segment) in self.segments.iter().enumerate() {
if i > 0 || self.global {
// Double colon `::`
tokens.append(Punct::new(':', Spacing::Joint));
tokens.append(Punct::new(':', Spacing::Alone));
}
segment.to_tokens(tokens);
}
}
}Provided Methods§
Sourcefn to_token_stream(&self) -> TokenStream
fn to_token_stream(&self) -> TokenStream
Convert self directly into a TokenStream object.
This method is implicitly implemented using to_tokens, and acts as a
convenience method for consumers of the ToTokens trait.
Sourcefn into_token_stream(self) -> TokenStreamwhere
Self: Sized,
fn into_token_stream(self) -> TokenStreamwhere
Self: Sized,
Convert self directly into a TokenStream object.
This method is implicitly implemented using to_tokens, and acts as a
convenience method for consumers of the ToTokens trait.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".
Implementations on Foreign Types§
Source§impl ToTokens for Abstract
Available on crate feature printing only.
impl ToTokens for Abstract
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for And
Available on crate feature printing only.
impl ToTokens for And
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for AndAnd
Available on crate feature printing only.
impl ToTokens for AndAnd
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for AndEq
Available on crate feature printing only.
impl ToTokens for AndEq
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for As
Available on crate feature printing only.
impl ToTokens for As
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Async
Available on crate feature printing only.
impl ToTokens for Async
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for At
Available on crate feature printing only.
impl ToTokens for At
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Auto
Available on crate feature printing only.
impl ToTokens for Auto
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Await
Available on crate feature printing only.
impl ToTokens for Await
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Become
Available on crate feature printing only.
impl ToTokens for Become
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Box
Available on crate feature printing only.
impl ToTokens for Box
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Break
Available on crate feature printing only.
impl ToTokens for Break
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Caret
Available on crate feature printing only.
impl ToTokens for Caret
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for CaretEq
Available on crate feature printing only.
impl ToTokens for CaretEq
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Colon
Available on crate feature printing only.
impl ToTokens for Colon
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Comma
Available on crate feature printing only.
impl ToTokens for Comma
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Const
Available on crate feature printing only.
impl ToTokens for Const
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Continue
Available on crate feature printing only.
impl ToTokens for Continue
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Crate
Available on crate feature printing only.
impl ToTokens for Crate
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Default
Available on crate feature printing only.
impl ToTokens for Default
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Do
Available on crate feature printing only.
impl ToTokens for Do
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Dollar
Available on crate feature printing only.
impl ToTokens for Dollar
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Dot
Available on crate feature printing only.
impl ToTokens for Dot
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for DotDot
Available on crate feature printing only.
impl ToTokens for DotDot
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for DotDotDot
Available on crate feature printing only.
impl ToTokens for DotDotDot
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for DotDotEq
Available on crate feature printing only.
impl ToTokens for DotDotEq
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Dyn
Available on crate feature printing only.
impl ToTokens for Dyn
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Else
Available on crate feature printing only.
impl ToTokens for Else
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Enum
Available on crate feature printing only.
impl ToTokens for Enum
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Eq
Available on crate feature printing only.
impl ToTokens for Eq
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for EqEq
Available on crate feature printing only.
impl ToTokens for EqEq
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Extern
Available on crate feature printing only.
impl ToTokens for Extern
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for FatArrow
Available on crate feature printing only.
impl ToTokens for FatArrow
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Final
Available on crate feature printing only.
impl ToTokens for Final
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Fn
Available on crate feature printing only.
impl ToTokens for Fn
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for For
Available on crate feature printing only.
impl ToTokens for For
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Ge
Available on crate feature printing only.
impl ToTokens for Ge
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Gt
Available on crate feature printing only.
impl ToTokens for Gt
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for If
Available on crate feature printing only.
impl ToTokens for If
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Impl
Available on crate feature printing only.
impl ToTokens for Impl
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for In
Available on crate feature printing only.
impl ToTokens for In
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for LArrow
Available on crate feature printing only.
impl ToTokens for LArrow
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Le
Available on crate feature printing only.
impl ToTokens for Le
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Let
Available on crate feature printing only.
impl ToTokens for Let
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for LitByteStr
impl ToTokens for LitByteStr
fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Loop
Available on crate feature printing only.
impl ToTokens for Loop
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Lt
Available on crate feature printing only.
impl ToTokens for Lt
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Macro
Available on crate feature printing only.
impl ToTokens for Macro
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Match
Available on crate feature printing only.
impl ToTokens for Match
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Minus
Available on crate feature printing only.
impl ToTokens for Minus
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for MinusEq
Available on crate feature printing only.
impl ToTokens for MinusEq
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Mod
Available on crate feature printing only.
impl ToTokens for Mod
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Move
Available on crate feature printing only.
impl ToTokens for Move
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Mut
Available on crate feature printing only.
impl ToTokens for Mut
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Ne
Available on crate feature printing only.
impl ToTokens for Ne
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Not
Available on crate feature printing only.
impl ToTokens for Not
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Nothing
Available on crate feature printing only.
impl ToTokens for Nothing
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Or
Available on crate feature printing only.
impl ToTokens for Or
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for OrEq
Available on crate feature printing only.
impl ToTokens for OrEq
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for OrOr
Available on crate feature printing only.
impl ToTokens for OrOr
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Override
Available on crate feature printing only.
impl ToTokens for Override
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for PathSep
Available on crate feature printing only.
impl ToTokens for PathSep
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Percent
Available on crate feature printing only.
impl ToTokens for Percent
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for PercentEq
Available on crate feature printing only.
impl ToTokens for PercentEq
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Plus
Available on crate feature printing only.
impl ToTokens for Plus
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for PlusEq
Available on crate feature printing only.
impl ToTokens for PlusEq
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Pound
Available on crate feature printing only.
impl ToTokens for Pound
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Priv
Available on crate feature printing only.
impl ToTokens for Priv
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Pub
Available on crate feature printing only.
impl ToTokens for Pub
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Question
Available on crate feature printing only.
impl ToTokens for Question
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for RArrow
Available on crate feature printing only.
impl ToTokens for RArrow
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Raw
Available on crate feature printing only.
impl ToTokens for Raw
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Ref
Available on crate feature printing only.
impl ToTokens for Ref
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Return
Available on crate feature printing only.
impl ToTokens for Return
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for SelfType
Available on crate feature printing only.
impl ToTokens for SelfType
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for SelfValue
Available on crate feature printing only.
impl ToTokens for SelfValue
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Semi
Available on crate feature printing only.
impl ToTokens for Semi
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Shl
Available on crate feature printing only.
impl ToTokens for Shl
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for ShlEq
Available on crate feature printing only.
impl ToTokens for ShlEq
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Shr
Available on crate feature printing only.
impl ToTokens for Shr
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for ShrEq
Available on crate feature printing only.
impl ToTokens for ShrEq
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Slash
Available on crate feature printing only.
impl ToTokens for Slash
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for SlashEq
Available on crate feature printing only.
impl ToTokens for SlashEq
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Star
Available on crate feature printing only.
impl ToTokens for Star
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for StarEq
Available on crate feature printing only.
impl ToTokens for StarEq
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Static
Available on crate feature printing only.
impl ToTokens for Static
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Struct
Available on crate feature printing only.
impl ToTokens for Struct
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Super
Available on crate feature printing only.
impl ToTokens for Super
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Tilde
Available on crate feature printing only.
impl ToTokens for Tilde
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for TokenStream
impl ToTokens for TokenStream
fn to_tokens(&self, tokens: &mut TokenStream)
fn into_token_stream(self) -> TokenStream
Source§impl ToTokens for Trait
Available on crate feature printing only.
impl ToTokens for Trait
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Try
Available on crate feature printing only.
impl ToTokens for Try
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Type
Available on crate feature printing only.
impl ToTokens for Type
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Typeof
Available on crate feature printing only.
impl ToTokens for Typeof
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Underscore
Available on crate feature printing only.
impl ToTokens for Underscore
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Union
Available on crate feature printing only.
impl ToTokens for Union
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Unsafe
Available on crate feature printing only.
impl ToTokens for Unsafe
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Unsized
Available on crate feature printing only.
impl ToTokens for Unsized
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Use
Available on crate feature printing only.
impl ToTokens for Use
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Virtual
Available on crate feature printing only.
impl ToTokens for Virtual
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Where
Available on crate feature printing only.
impl ToTokens for Where
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for While
Available on crate feature printing only.
impl ToTokens for While
Available on crate feature
printing only.fn to_tokens(&self, tokens: &mut TokenStream)
Source§impl ToTokens for Yield
Available on crate feature printing only.
impl ToTokens for Yield
Available on crate feature
printing only.