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<T> ToTokens for Option<T>where
T: ToTokens,
impl<T> ToTokens for Option<T>where
T: ToTokens,
fn to_tokens(&self, tokens: &mut TokenStream)
Implementors§
impl ToTokens for Arg
impl ToTokens for Input
impl ToTokens for FieldKey
impl ToTokens for TokenTree
impl ToTokens for BinOp
impl ToTokens for CapturedParam
Available on crate feature
full only.impl ToTokens for Expr
impl ToTokens for Fields
impl ToTokens for FnArg
impl ToTokens for ForeignItem
impl ToTokens for GenericArgument
impl ToTokens for GenericParam
impl ToTokens for ImplItem
impl ToTokens for Item
impl ToTokens for Lit
impl ToTokens for Member
impl ToTokens for Meta
impl ToTokens for Pat
impl ToTokens for PathArguments
impl ToTokens for PointerMutability
Available on crate feature
full only.impl ToTokens for RangeLimits
Available on crate feature
full only.impl ToTokens for ReturnType
impl ToTokens for StaticMutability
impl ToTokens for Stmt
impl ToTokens for TraitBoundModifier
impl ToTokens for TraitItem
impl ToTokens for zyn::syn::Type
impl ToTokens for TypeParamBound
impl ToTokens for UnOp
impl ToTokens for UseTree
impl ToTokens for Visibility
impl ToTokens for WherePredicate
impl ToTokens for Group
impl ToTokens for Ident
impl ToTokens for Literal
impl ToTokens for Punct
impl ToTokens for Args
impl ToTokens for TokenStream
impl ToTokens for Nothing
Available on crate feature
printing only.impl ToTokens for Abi
impl ToTokens for AngleBracketedGenericArguments
impl ToTokens for Arm
Available on crate feature
full only.impl ToTokens for AssocConst
impl ToTokens for AssocType
impl ToTokens for Attribute
impl ToTokens for BareFnArg
impl ToTokens for BareVariadic
impl ToTokens for Block
impl ToTokens for BoundLifetimes
impl ToTokens for ConstParam
impl ToTokens for Constraint
impl ToTokens for DeriveInput
impl ToTokens for ExprArray
Available on crate feature
full only.impl ToTokens for ExprAssign
Available on crate feature
full only.impl ToTokens for ExprAsync
Available on crate feature
full only.impl ToTokens for ExprAwait
Available on crate feature
full only.impl ToTokens for ExprBinary
impl ToTokens for ExprBlock
Available on crate feature
full only.impl ToTokens for ExprBreak
Available on crate feature
full only.impl ToTokens for ExprCall
impl ToTokens for ExprCast
impl ToTokens for ExprClosure
Available on crate feature
full only.impl ToTokens for ExprConst
Available on crate feature
full only.impl ToTokens for ExprContinue
Available on crate feature
full only.impl ToTokens for ExprField
impl ToTokens for ExprForLoop
Available on crate feature
full only.impl ToTokens for ExprGroup
impl ToTokens for ExprIf
Available on crate feature
full only.impl ToTokens for ExprIndex
impl ToTokens for ExprInfer
Available on crate feature
full only.impl ToTokens for ExprLet
Available on crate feature
full only.impl ToTokens for ExprLit
impl ToTokens for ExprLoop
Available on crate feature
full only.impl ToTokens for ExprMacro
impl ToTokens for ExprMatch
Available on crate feature
full only.impl ToTokens for ExprMethodCall
impl ToTokens for ExprParen
impl ToTokens for ExprPath
impl ToTokens for ExprRange
Available on crate feature
full only.impl ToTokens for ExprRawAddr
Available on crate feature
full only.impl ToTokens for ExprReference
impl ToTokens for ExprRepeat
Available on crate feature
full only.impl ToTokens for ExprReturn
Available on crate feature
full only.impl ToTokens for ExprStruct
impl ToTokens for ExprTry
Available on crate feature
full only.impl ToTokens for ExprTryBlock
Available on crate feature
full only.impl ToTokens for ExprTuple
impl ToTokens for ExprUnary
impl ToTokens for ExprUnsafe
Available on crate feature
full only.impl ToTokens for ExprWhile
Available on crate feature
full only.impl ToTokens for ExprYield
Available on crate feature
full only.impl ToTokens for Field
impl ToTokens for FieldPat
impl ToTokens for FieldValue
impl ToTokens for FieldsNamed
impl ToTokens for FieldsUnnamed
impl ToTokens for File
impl ToTokens for ForeignItemFn
impl ToTokens for ForeignItemMacro
impl ToTokens for ForeignItemStatic
impl ToTokens for ForeignItemType
impl ToTokens for Generics
impl ToTokens for ImplItemConst
impl ToTokens for ImplItemFn
impl ToTokens for ImplItemMacro
impl ToTokens for ImplItemType
impl ToTokens for Index
impl ToTokens for ItemConst
impl ToTokens for ItemEnum
impl ToTokens for ItemExternCrate
impl ToTokens for ItemFn
impl ToTokens for ItemForeignMod
impl ToTokens for ItemImpl
impl ToTokens for ItemMacro
impl ToTokens for ItemMod
impl ToTokens for ItemStatic
impl ToTokens for ItemStruct
impl ToTokens for ItemTrait
impl ToTokens for ItemTraitAlias
impl ToTokens for ItemType
impl ToTokens for ItemUnion
impl ToTokens for ItemUse
impl ToTokens for Label
Available on crate feature
full only.impl ToTokens for Lifetime
impl ToTokens for LifetimeParam
impl ToTokens for LitBool
impl ToTokens for LitByte
impl ToTokens for LitByteStr
impl ToTokens for LitCStr
impl ToTokens for LitChar
impl ToTokens for LitFloat
impl ToTokens for LitInt
impl ToTokens for LitStr
impl ToTokens for Local
impl ToTokens for zyn::syn::Macro
impl ToTokens for MetaList
impl ToTokens for MetaNameValue
impl ToTokens for ParenthesizedGenericArguments
impl ToTokens for PatIdent
impl ToTokens for PatOr
impl ToTokens for PatParen
impl ToTokens for PatReference
impl ToTokens for PatRest
impl ToTokens for PatSlice
impl ToTokens for PatStruct
impl ToTokens for PatTuple
impl ToTokens for PatTupleStruct
impl ToTokens for PatType
impl ToTokens for PatWild
impl ToTokens for Path
impl ToTokens for PathSegment
impl ToTokens for PreciseCapture
Available on crate feature
full only.impl ToTokens for PredicateLifetime
impl ToTokens for PredicateType
impl ToTokens for Receiver
impl ToTokens for Signature
impl ToTokens for StmtMacro
impl ToTokens for TraitBound
impl ToTokens for TraitItemConst
impl ToTokens for TraitItemFn
impl ToTokens for TraitItemMacro
impl ToTokens for TraitItemType
impl ToTokens for TypeArray
impl ToTokens for TypeBareFn
impl ToTokens for TypeGroup
impl ToTokens for TypeImplTrait
impl ToTokens for TypeInfer
impl ToTokens for TypeMacro
impl ToTokens for TypeNever
impl ToTokens for TypeParam
impl ToTokens for TypeParen
impl ToTokens for TypePath
impl ToTokens for TypePtr
impl ToTokens for TypeReference
impl ToTokens for TypeSlice
impl ToTokens for TypeTraitObject
impl ToTokens for TypeTuple
impl ToTokens for UseGlob
impl ToTokens for UseGroup
impl ToTokens for UseName
impl ToTokens for UsePath
impl ToTokens for UseRename
impl ToTokens for Variadic
impl ToTokens for Variant
impl ToTokens for VisRestricted
impl ToTokens for WhereClause
impl ToTokens for Abstract
Available on crate feature
printing only.impl ToTokens for And
Available on crate feature
printing only.impl ToTokens for AndAnd
Available on crate feature
printing only.impl ToTokens for AndEq
Available on crate feature
printing only.impl ToTokens for As
Available on crate feature
printing only.impl ToTokens for Async
Available on crate feature
printing only.impl ToTokens for At
Available on crate feature
printing only.impl ToTokens for Auto
Available on crate feature
printing only.impl ToTokens for Await
Available on crate feature
printing only.impl ToTokens for Become
Available on crate feature
printing only.impl ToTokens for zyn::syn::token::Box
Available on crate feature
printing only.impl ToTokens for Break
Available on crate feature
printing only.impl ToTokens for Caret
Available on crate feature
printing only.impl ToTokens for CaretEq
Available on crate feature
printing only.impl ToTokens for Colon
Available on crate feature
printing only.impl ToTokens for Comma
Available on crate feature
printing only.impl ToTokens for Const
Available on crate feature
printing only.impl ToTokens for Continue
Available on crate feature
printing only.impl ToTokens for Crate
Available on crate feature
printing only.impl ToTokens for Default
Available on crate feature
printing only.impl ToTokens for Do
Available on crate feature
printing only.impl ToTokens for Dollar
Available on crate feature
printing only.impl ToTokens for Dot
Available on crate feature
printing only.impl ToTokens for DotDot
Available on crate feature
printing only.impl ToTokens for DotDotDot
Available on crate feature
printing only.impl ToTokens for DotDotEq
Available on crate feature
printing only.impl ToTokens for Dyn
Available on crate feature
printing only.impl ToTokens for Else
Available on crate feature
printing only.impl ToTokens for Enum
Available on crate feature
printing only.impl ToTokens for Eq
Available on crate feature
printing only.impl ToTokens for EqEq
Available on crate feature
printing only.impl ToTokens for Extern
Available on crate feature
printing only.impl ToTokens for FatArrow
Available on crate feature
printing only.impl ToTokens for Final
Available on crate feature
printing only.impl ToTokens for Fn
Available on crate feature
printing only.impl ToTokens for For
Available on crate feature
printing only.impl ToTokens for Ge
Available on crate feature
printing only.impl ToTokens for Gt
Available on crate feature
printing only.impl ToTokens for If
Available on crate feature
printing only.impl ToTokens for Impl
Available on crate feature
printing only.impl ToTokens for In
Available on crate feature
printing only.impl ToTokens for LArrow
Available on crate feature
printing only.impl ToTokens for Le
Available on crate feature
printing only.impl ToTokens for Let
Available on crate feature
printing only.impl ToTokens for Loop
Available on crate feature
printing only.impl ToTokens for Lt
Available on crate feature
printing only.impl ToTokens for zyn::syn::token::Macro
Available on crate feature
printing only.impl ToTokens for Match
Available on crate feature
printing only.impl ToTokens for Minus
Available on crate feature
printing only.impl ToTokens for MinusEq
Available on crate feature
printing only.impl ToTokens for Mod
Available on crate feature
printing only.impl ToTokens for Move
Available on crate feature
printing only.impl ToTokens for Mut
Available on crate feature
printing only.impl ToTokens for Ne
Available on crate feature
printing only.impl ToTokens for Not
Available on crate feature
printing only.impl ToTokens for Or
Available on crate feature
printing only.impl ToTokens for OrEq
Available on crate feature
printing only.impl ToTokens for OrOr
Available on crate feature
printing only.impl ToTokens for Override
Available on crate feature
printing only.impl ToTokens for PathSep
Available on crate feature
printing only.impl ToTokens for Percent
Available on crate feature
printing only.impl ToTokens for PercentEq
Available on crate feature
printing only.impl ToTokens for Plus
Available on crate feature
printing only.impl ToTokens for PlusEq
Available on crate feature
printing only.impl ToTokens for Pound
Available on crate feature
printing only.impl ToTokens for Priv
Available on crate feature
printing only.impl ToTokens for Pub
Available on crate feature
printing only.impl ToTokens for Question
Available on crate feature
printing only.impl ToTokens for RArrow
Available on crate feature
printing only.impl ToTokens for Raw
Available on crate feature
printing only.impl ToTokens for Ref
Available on crate feature
printing only.impl ToTokens for Return
Available on crate feature
printing only.impl ToTokens for SelfType
Available on crate feature
printing only.impl ToTokens for SelfValue
Available on crate feature
printing only.impl ToTokens for Semi
Available on crate feature
printing only.impl ToTokens for Shl
Available on crate feature
printing only.impl ToTokens for ShlEq
Available on crate feature
printing only.impl ToTokens for Shr
Available on crate feature
printing only.impl ToTokens for ShrEq
Available on crate feature
printing only.impl ToTokens for Slash
Available on crate feature
printing only.impl ToTokens for SlashEq
Available on crate feature
printing only.impl ToTokens for Star
Available on crate feature
printing only.impl ToTokens for StarEq
Available on crate feature
printing only.impl ToTokens for Static
Available on crate feature
printing only.impl ToTokens for Struct
Available on crate feature
printing only.impl ToTokens for Super
Available on crate feature
printing only.impl ToTokens for Tilde
Available on crate feature
printing only.impl ToTokens for Trait
Available on crate feature
printing only.impl ToTokens for Try
Available on crate feature
printing only.impl ToTokens for zyn::syn::token::Type
Available on crate feature
printing only.impl ToTokens for Typeof
Available on crate feature
printing only.impl ToTokens for Underscore
Available on crate feature
printing only.impl ToTokens for Union
Available on crate feature
printing only.impl ToTokens for Unsafe
Available on crate feature
printing only.impl ToTokens for Unsized
Available on crate feature
printing only.impl ToTokens for Use
Available on crate feature
printing only.impl ToTokens for Virtual
Available on crate feature
printing only.impl ToTokens for Where
Available on crate feature
printing only.impl ToTokens for While
Available on crate feature
printing only.impl ToTokens for Yield
Available on crate feature
printing only.