Skip to main content

ToTokens

Trait ToTokens 

Source
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§

Source

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§

Source

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.

Source

fn into_token_stream(self) -> TokenStream
where 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 bool

Source§

fn to_tokens(&self, tokens: &mut TokenStream)

Source§

impl ToTokens for char

Source§

fn to_tokens(&self, tokens: &mut TokenStream)

Source§

impl ToTokens for f32

Source§

fn to_tokens(&self, tokens: &mut TokenStream)

Source§

impl ToTokens for f64

Source§

fn to_tokens(&self, tokens: &mut TokenStream)

Source§

impl ToTokens for i8

Source§

fn to_tokens(&self, tokens: &mut TokenStream)

Source§

impl ToTokens for i16

Source§

fn to_tokens(&self, tokens: &mut TokenStream)

Source§

impl ToTokens for i32

Source§

fn to_tokens(&self, tokens: &mut TokenStream)

Source§

impl ToTokens for i64

Source§

fn to_tokens(&self, tokens: &mut TokenStream)

Source§

impl ToTokens for i128

Source§

fn to_tokens(&self, tokens: &mut TokenStream)

Source§

impl ToTokens for isize

Source§

fn to_tokens(&self, tokens: &mut TokenStream)

Source§

impl ToTokens for str

Source§

fn to_tokens(&self, tokens: &mut TokenStream)

Source§

impl ToTokens for u8

Source§

fn to_tokens(&self, tokens: &mut TokenStream)

Source§

impl ToTokens for u16

Source§

fn to_tokens(&self, tokens: &mut TokenStream)

Source§

impl ToTokens for u32

Source§

fn to_tokens(&self, tokens: &mut TokenStream)

Source§

impl ToTokens for u64

Source§

fn to_tokens(&self, tokens: &mut TokenStream)

Source§

impl ToTokens for u128

Source§

fn to_tokens(&self, tokens: &mut TokenStream)

Source§

impl ToTokens for usize

Source§

fn to_tokens(&self, tokens: &mut TokenStream)

Source§

impl ToTokens for CString

Source§

fn to_tokens(&self, tokens: &mut TokenStream)

Source§

impl ToTokens for String

Source§

fn to_tokens(&self, tokens: &mut TokenStream)

Source§

impl ToTokens for CStr

Source§

fn to_tokens(&self, tokens: &mut TokenStream)

Source§

impl<'a, T> ToTokens for Cow<'a, T>
where T: ToOwned + ToTokens + ?Sized,

Source§

fn to_tokens(&self, tokens: &mut TokenStream)

Source§

impl<T> ToTokens for Option<T>
where T: ToTokens,

Source§

fn to_tokens(&self, tokens: &mut TokenStream)

Source§

impl<T> ToTokens for &T
where T: ToTokens + ?Sized,

Source§

fn to_tokens(&self, tokens: &mut TokenStream)

Source§

impl<T> ToTokens for &mut T
where T: ToTokens + ?Sized,

Source§

fn to_tokens(&self, tokens: &mut TokenStream)

Source§

impl<T> ToTokens for Box<T>
where T: ToTokens + ?Sized,

Source§

fn to_tokens(&self, tokens: &mut TokenStream)

Source§

impl<T> ToTokens for Rc<T>
where T: ToTokens + ?Sized,

Source§

fn to_tokens(&self, tokens: &mut TokenStream)

Implementors§

Source§

impl ToTokens for Arg

Source§

impl ToTokens for Input

Source§

impl ToTokens for FieldKey

Source§

impl ToTokens for TokenTree

Source§

impl ToTokens for BinOp

Source§

impl ToTokens for CapturedParam

Available on crate feature full only.
Source§

impl ToTokens for Expr

Source§

impl ToTokens for Fields

Source§

impl ToTokens for FnArg

Source§

impl ToTokens for ForeignItem

Source§

impl ToTokens for GenericArgument

Source§

impl ToTokens for GenericParam

Source§

impl ToTokens for ImplItem

Source§

impl ToTokens for Item

Source§

impl ToTokens for Lit

Source§

impl ToTokens for Member

Source§

impl ToTokens for Meta

Source§

impl ToTokens for Pat

Source§

impl ToTokens for PathArguments

Source§

impl ToTokens for PointerMutability

Available on crate feature full only.
Source§

impl ToTokens for RangeLimits

Available on crate feature full only.
Source§

impl ToTokens for ReturnType

Source§

impl ToTokens for StaticMutability

Source§

impl ToTokens for Stmt

Source§

impl ToTokens for TraitBoundModifier

Source§

impl ToTokens for TraitItem

Source§

impl ToTokens for zyn::syn::Type

Source§

impl ToTokens for TypeParamBound

Source§

impl ToTokens for UnOp

Source§

impl ToTokens for UseTree

Source§

impl ToTokens for Visibility

Source§

impl ToTokens for WherePredicate

Source§

impl ToTokens for Group

Source§

impl ToTokens for Ident

Source§

impl ToTokens for Literal

Source§

impl ToTokens for Punct

Source§

impl ToTokens for Args

Source§

impl ToTokens for TokenStream

Source§

impl ToTokens for Nothing

Available on crate feature printing only.
Source§

impl ToTokens for Abi

Source§

impl ToTokens for AngleBracketedGenericArguments

Source§

impl ToTokens for Arm

Available on crate feature full only.
Source§

impl ToTokens for AssocConst

Source§

impl ToTokens for AssocType

Source§

impl ToTokens for Attribute

Source§

impl ToTokens for BareFnArg

Source§

impl ToTokens for BareVariadic

Source§

impl ToTokens for Block

Source§

impl ToTokens for BoundLifetimes

Source§

impl ToTokens for ConstParam

Source§

impl ToTokens for Constraint

Source§

impl ToTokens for DeriveInput

Source§

impl ToTokens for ExprArray

Available on crate feature full only.
Source§

impl ToTokens for ExprAssign

Available on crate feature full only.
Source§

impl ToTokens for ExprAsync

Available on crate feature full only.
Source§

impl ToTokens for ExprAwait

Available on crate feature full only.
Source§

impl ToTokens for ExprBinary

Source§

impl ToTokens for ExprBlock

Available on crate feature full only.
Source§

impl ToTokens for ExprBreak

Available on crate feature full only.
Source§

impl ToTokens for ExprCall

Source§

impl ToTokens for ExprCast

Source§

impl ToTokens for ExprClosure

Available on crate feature full only.
Source§

impl ToTokens for ExprConst

Available on crate feature full only.
Source§

impl ToTokens for ExprContinue

Available on crate feature full only.
Source§

impl ToTokens for ExprField

Source§

impl ToTokens for ExprForLoop

Available on crate feature full only.
Source§

impl ToTokens for ExprGroup

Source§

impl ToTokens for ExprIf

Available on crate feature full only.
Source§

impl ToTokens for ExprIndex

Source§

impl ToTokens for ExprInfer

Available on crate feature full only.
Source§

impl ToTokens for ExprLet

Available on crate feature full only.
Source§

impl ToTokens for ExprLit

Source§

impl ToTokens for ExprLoop

Available on crate feature full only.
Source§

impl ToTokens for ExprMacro

Source§

impl ToTokens for ExprMatch

Available on crate feature full only.
Source§

impl ToTokens for ExprMethodCall

Source§

impl ToTokens for ExprParen

Source§

impl ToTokens for ExprPath

Source§

impl ToTokens for ExprRange

Available on crate feature full only.
Source§

impl ToTokens for ExprRawAddr

Available on crate feature full only.
Source§

impl ToTokens for ExprReference

Source§

impl ToTokens for ExprRepeat

Available on crate feature full only.
Source§

impl ToTokens for ExprReturn

Available on crate feature full only.
Source§

impl ToTokens for ExprStruct

Source§

impl ToTokens for ExprTry

Available on crate feature full only.
Source§

impl ToTokens for ExprTryBlock

Available on crate feature full only.
Source§

impl ToTokens for ExprTuple

Source§

impl ToTokens for ExprUnary

Source§

impl ToTokens for ExprUnsafe

Available on crate feature full only.
Source§

impl ToTokens for ExprWhile

Available on crate feature full only.
Source§

impl ToTokens for ExprYield

Available on crate feature full only.
Source§

impl ToTokens for Field

Source§

impl ToTokens for FieldPat

Source§

impl ToTokens for FieldValue

Source§

impl ToTokens for FieldsNamed

Source§

impl ToTokens for FieldsUnnamed

Source§

impl ToTokens for File

Source§

impl ToTokens for ForeignItemFn

Source§

impl ToTokens for ForeignItemMacro

Source§

impl ToTokens for ForeignItemStatic

Source§

impl ToTokens for ForeignItemType

Source§

impl ToTokens for Generics

Source§

impl ToTokens for ImplItemConst

Source§

impl ToTokens for ImplItemFn

Source§

impl ToTokens for ImplItemMacro

Source§

impl ToTokens for ImplItemType

Source§

impl ToTokens for Index

Source§

impl ToTokens for ItemConst

Source§

impl ToTokens for ItemEnum

Source§

impl ToTokens for ItemExternCrate

Source§

impl ToTokens for ItemFn

Source§

impl ToTokens for ItemForeignMod

Source§

impl ToTokens for ItemImpl

Source§

impl ToTokens for ItemMacro

Source§

impl ToTokens for ItemMod

Source§

impl ToTokens for ItemStatic

Source§

impl ToTokens for ItemStruct

Source§

impl ToTokens for ItemTrait

Source§

impl ToTokens for ItemTraitAlias

Source§

impl ToTokens for ItemType

Source§

impl ToTokens for ItemUnion

Source§

impl ToTokens for ItemUse

Source§

impl ToTokens for Label

Available on crate feature full only.
Source§

impl ToTokens for Lifetime

Source§

impl ToTokens for LifetimeParam

Source§

impl ToTokens for LitBool

Source§

impl ToTokens for LitByte

Source§

impl ToTokens for LitByteStr

Source§

impl ToTokens for LitCStr

Source§

impl ToTokens for LitChar

Source§

impl ToTokens for LitFloat

Source§

impl ToTokens for LitInt

Source§

impl ToTokens for LitStr

Source§

impl ToTokens for Local

Source§

impl ToTokens for zyn::syn::Macro

Source§

impl ToTokens for MetaList

Source§

impl ToTokens for MetaNameValue

Source§

impl ToTokens for ParenthesizedGenericArguments

Source§

impl ToTokens for PatIdent

Source§

impl ToTokens for PatOr

Source§

impl ToTokens for PatParen

Source§

impl ToTokens for PatReference

Source§

impl ToTokens for PatRest

Source§

impl ToTokens for PatSlice

Source§

impl ToTokens for PatStruct

Source§

impl ToTokens for PatTuple

Source§

impl ToTokens for PatTupleStruct

Source§

impl ToTokens for PatType

Source§

impl ToTokens for PatWild

Source§

impl ToTokens for Path

Source§

impl ToTokens for PathSegment

Source§

impl ToTokens for PreciseCapture

Available on crate feature full only.
Source§

impl ToTokens for PredicateLifetime

Source§

impl ToTokens for PredicateType

Source§

impl ToTokens for Receiver

Source§

impl ToTokens for Signature

Source§

impl ToTokens for StmtMacro

Source§

impl ToTokens for TraitBound

Source§

impl ToTokens for TraitItemConst

Source§

impl ToTokens for TraitItemFn

Source§

impl ToTokens for TraitItemMacro

Source§

impl ToTokens for TraitItemType

Source§

impl ToTokens for TypeArray

Source§

impl ToTokens for TypeBareFn

Source§

impl ToTokens for TypeGroup

Source§

impl ToTokens for TypeImplTrait

Source§

impl ToTokens for TypeInfer

Source§

impl ToTokens for TypeMacro

Source§

impl ToTokens for TypeNever

Source§

impl ToTokens for TypeParam

Source§

impl ToTokens for TypeParen

Source§

impl ToTokens for TypePath

Source§

impl ToTokens for TypePtr

Source§

impl ToTokens for TypeReference

Source§

impl ToTokens for TypeSlice

Source§

impl ToTokens for TypeTraitObject

Source§

impl ToTokens for TypeTuple

Source§

impl ToTokens for UseGlob

Source§

impl ToTokens for UseGroup

Source§

impl ToTokens for UseName

Source§

impl ToTokens for UsePath

Source§

impl ToTokens for UseRename

Source§

impl ToTokens for Variadic

Source§

impl ToTokens for Variant

Source§

impl ToTokens for VisRestricted

Source§

impl ToTokens for WhereClause

Source§

impl ToTokens for Abstract

Available on crate feature printing only.
Source§

impl ToTokens for And

Available on crate feature printing only.
Source§

impl ToTokens for AndAnd

Available on crate feature printing only.
Source§

impl ToTokens for AndEq

Available on crate feature printing only.
Source§

impl ToTokens for As

Available on crate feature printing only.
Source§

impl ToTokens for Async

Available on crate feature printing only.
Source§

impl ToTokens for At

Available on crate feature printing only.
Source§

impl ToTokens for Auto

Available on crate feature printing only.
Source§

impl ToTokens for Await

Available on crate feature printing only.
Source§

impl ToTokens for Become

Available on crate feature printing only.
Source§

impl ToTokens for zyn::syn::token::Box

Available on crate feature printing only.
Source§

impl ToTokens for Break

Available on crate feature printing only.
Source§

impl ToTokens for Caret

Available on crate feature printing only.
Source§

impl ToTokens for CaretEq

Available on crate feature printing only.
Source§

impl ToTokens for Colon

Available on crate feature printing only.
Source§

impl ToTokens for Comma

Available on crate feature printing only.
Source§

impl ToTokens for Const

Available on crate feature printing only.
Source§

impl ToTokens for Continue

Available on crate feature printing only.
Source§

impl ToTokens for Crate

Available on crate feature printing only.
Source§

impl ToTokens for Default

Available on crate feature printing only.
Source§

impl ToTokens for Do

Available on crate feature printing only.
Source§

impl ToTokens for Dollar

Available on crate feature printing only.
Source§

impl ToTokens for Dot

Available on crate feature printing only.
Source§

impl ToTokens for DotDot

Available on crate feature printing only.
Source§

impl ToTokens for DotDotDot

Available on crate feature printing only.
Source§

impl ToTokens for DotDotEq

Available on crate feature printing only.
Source§

impl ToTokens for Dyn

Available on crate feature printing only.
Source§

impl ToTokens for Else

Available on crate feature printing only.
Source§

impl ToTokens for Enum

Available on crate feature printing only.
Source§

impl ToTokens for Eq

Available on crate feature printing only.
Source§

impl ToTokens for EqEq

Available on crate feature printing only.
Source§

impl ToTokens for Extern

Available on crate feature printing only.
Source§

impl ToTokens for FatArrow

Available on crate feature printing only.
Source§

impl ToTokens for Final

Available on crate feature printing only.
Source§

impl ToTokens for Fn

Available on crate feature printing only.
Source§

impl ToTokens for For

Available on crate feature printing only.
Source§

impl ToTokens for Ge

Available on crate feature printing only.
Source§

impl ToTokens for Gt

Available on crate feature printing only.
Source§

impl ToTokens for If

Available on crate feature printing only.
Source§

impl ToTokens for Impl

Available on crate feature printing only.
Source§

impl ToTokens for In

Available on crate feature printing only.
Source§

impl ToTokens for LArrow

Available on crate feature printing only.
Source§

impl ToTokens for Le

Available on crate feature printing only.
Source§

impl ToTokens for Let

Available on crate feature printing only.
Source§

impl ToTokens for Loop

Available on crate feature printing only.
Source§

impl ToTokens for Lt

Available on crate feature printing only.
Source§

impl ToTokens for zyn::syn::token::Macro

Available on crate feature printing only.
Source§

impl ToTokens for Match

Available on crate feature printing only.
Source§

impl ToTokens for Minus

Available on crate feature printing only.
Source§

impl ToTokens for MinusEq

Available on crate feature printing only.
Source§

impl ToTokens for Mod

Available on crate feature printing only.
Source§

impl ToTokens for Move

Available on crate feature printing only.
Source§

impl ToTokens for Mut

Available on crate feature printing only.
Source§

impl ToTokens for Ne

Available on crate feature printing only.
Source§

impl ToTokens for Not

Available on crate feature printing only.
Source§

impl ToTokens for Or

Available on crate feature printing only.
Source§

impl ToTokens for OrEq

Available on crate feature printing only.
Source§

impl ToTokens for OrOr

Available on crate feature printing only.
Source§

impl ToTokens for Override

Available on crate feature printing only.
Source§

impl ToTokens for PathSep

Available on crate feature printing only.
Source§

impl ToTokens for Percent

Available on crate feature printing only.
Source§

impl ToTokens for PercentEq

Available on crate feature printing only.
Source§

impl ToTokens for Plus

Available on crate feature printing only.
Source§

impl ToTokens for PlusEq

Available on crate feature printing only.
Source§

impl ToTokens for Pound

Available on crate feature printing only.
Source§

impl ToTokens for Priv

Available on crate feature printing only.
Source§

impl ToTokens for Pub

Available on crate feature printing only.
Source§

impl ToTokens for Question

Available on crate feature printing only.
Source§

impl ToTokens for RArrow

Available on crate feature printing only.
Source§

impl ToTokens for Raw

Available on crate feature printing only.
Source§

impl ToTokens for Ref

Available on crate feature printing only.
Source§

impl ToTokens for Return

Available on crate feature printing only.
Source§

impl ToTokens for SelfType

Available on crate feature printing only.
Source§

impl ToTokens for SelfValue

Available on crate feature printing only.
Source§

impl ToTokens for Semi

Available on crate feature printing only.
Source§

impl ToTokens for Shl

Available on crate feature printing only.
Source§

impl ToTokens for ShlEq

Available on crate feature printing only.
Source§

impl ToTokens for Shr

Available on crate feature printing only.
Source§

impl ToTokens for ShrEq

Available on crate feature printing only.
Source§

impl ToTokens for Slash

Available on crate feature printing only.
Source§

impl ToTokens for SlashEq

Available on crate feature printing only.
Source§

impl ToTokens for Star

Available on crate feature printing only.
Source§

impl ToTokens for StarEq

Available on crate feature printing only.
Source§

impl ToTokens for Static

Available on crate feature printing only.
Source§

impl ToTokens for Struct

Available on crate feature printing only.
Source§

impl ToTokens for Super

Available on crate feature printing only.
Source§

impl ToTokens for Tilde

Available on crate feature printing only.
Source§

impl ToTokens for Trait

Available on crate feature printing only.
Source§

impl ToTokens for Try

Available on crate feature printing only.
Source§

impl ToTokens for zyn::syn::token::Type

Available on crate feature printing only.
Source§

impl ToTokens for Typeof

Available on crate feature printing only.
Source§

impl ToTokens for Underscore

Available on crate feature printing only.
Source§

impl ToTokens for Union

Available on crate feature printing only.
Source§

impl ToTokens for Unsafe

Available on crate feature printing only.
Source§

impl ToTokens for Unsized

Available on crate feature printing only.
Source§

impl ToTokens for Use

Available on crate feature printing only.
Source§

impl ToTokens for Virtual

Available on crate feature printing only.
Source§

impl ToTokens for Where

Available on crate feature printing only.
Source§

impl ToTokens for While

Available on crate feature printing only.
Source§

impl ToTokens for Yield

Available on crate feature printing only.
Source§

impl<'a> ToTokens for ImplGenerics<'a>

Source§

impl<'a> ToTokens for Turbofish<'a>

Source§

impl<'a> ToTokens for TypeGenerics<'a>

Source§

impl<T, P> ToTokens for Pair<T, P>
where T: ToTokens, P: ToTokens,

Source§

impl<T, P> ToTokens for Punctuated<T, P>
where T: ToTokens, P: ToTokens,