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.
Implementations on Foreign Types§
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 LitByteStr
impl ToTokens for LitByteStr
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 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 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 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 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.