Trait macro_tools::protected::quote::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 String

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<'a, T> ToTokens for &'a T
where T: ToTokens + ?Sized,

source§

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

source§

impl<'a, T> ToTokens for &'a mut T
where T: 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 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 TokenTree

source§

impl ToTokens for BinOp

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 RangeLimits

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 macro_tools::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 FieldOrVariant<'_>

source§

impl ToTokens for StructLike

source§

impl ToTokens for Group

source§

impl ToTokens for Ident

source§

impl ToTokens for Literal

source§

impl ToTokens for Punct

source§

impl ToTokens for TokenStream

source§

impl ToTokens for Abi

source§

impl ToTokens for AngleBracketedGenericArguments

source§

impl ToTokens for Arm

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

source§

impl ToTokens for ExprAssign

source§

impl ToTokens for ExprAsync

source§

impl ToTokens for ExprAwait

source§

impl ToTokens for ExprBinary

source§

impl ToTokens for ExprBlock

source§

impl ToTokens for ExprBreak

source§

impl ToTokens for ExprCall

source§

impl ToTokens for ExprCast

source§

impl ToTokens for ExprClosure

source§

impl ToTokens for ExprContinue

source§

impl ToTokens for ExprField

source§

impl ToTokens for ExprForLoop

source§

impl ToTokens for ExprGroup

source§

impl ToTokens for ExprIf

source§

impl ToTokens for ExprIndex

source§

impl ToTokens for ExprInfer

source§

impl ToTokens for ExprLet

source§

impl ToTokens for ExprLoop

source§

impl ToTokens for ExprMatch

source§

impl ToTokens for ExprMethodCall

source§

impl ToTokens for ExprParen

source§

impl ToTokens for ExprReference

source§

impl ToTokens for ExprRepeat

source§

impl ToTokens for ExprReturn

source§

impl ToTokens for ExprStruct

source§

impl ToTokens for ExprTry

source§

impl ToTokens for ExprTryBlock

source§

impl ToTokens for ExprTuple

source§

impl ToTokens for ExprUnary

source§

impl ToTokens for ExprUnsafe

source§

impl ToTokens for ExprWhile

source§

impl ToTokens for ExprYield

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

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 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 macro_tools::syn::Macro

source§

impl ToTokens for MetaList

source§

impl ToTokens for MetaNameValue

source§

impl ToTokens for ParenthesizedGenericArguments

source§

impl ToTokens for ExprConst

source§

impl ToTokens for PatIdent

source§

impl ToTokens for ExprLit

source§

impl ToTokens for ExprMacro

source§

impl ToTokens for PatOr

source§

impl ToTokens for PatParen

source§

impl ToTokens for ExprPath

source§

impl ToTokens for ExprRange

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

source§

impl ToTokens for And

source§

impl ToTokens for AndAnd

source§

impl ToTokens for AndEq

source§

impl ToTokens for As

source§

impl ToTokens for Async

source§

impl ToTokens for At

source§

impl ToTokens for Auto

source§

impl ToTokens for Await

source§

impl ToTokens for Become

source§

impl ToTokens for macro_tools::syn::token::Box

source§

impl ToTokens for Break

source§

impl ToTokens for Caret

source§

impl ToTokens for CaretEq

source§

impl ToTokens for Colon

source§

impl ToTokens for Comma

source§

impl ToTokens for Const

source§

impl ToTokens for Continue

source§

impl ToTokens for Crate

source§

impl ToTokens for Default

source§

impl ToTokens for Do

source§

impl ToTokens for Dollar

source§

impl ToTokens for Dot

source§

impl ToTokens for DotDot

source§

impl ToTokens for DotDotDot

source§

impl ToTokens for DotDotEq

source§

impl ToTokens for Dyn

source§

impl ToTokens for Else

source§

impl ToTokens for Enum

source§

impl ToTokens for Eq

source§

impl ToTokens for EqEq

source§

impl ToTokens for Extern

source§

impl ToTokens for FatArrow

source§

impl ToTokens for Final

source§

impl ToTokens for Fn

source§

impl ToTokens for For

source§

impl ToTokens for Ge

source§

impl ToTokens for Gt

source§

impl ToTokens for If

source§

impl ToTokens for Impl

source§

impl ToTokens for In

source§

impl ToTokens for LArrow

source§

impl ToTokens for Le

source§

impl ToTokens for Let

source§

impl ToTokens for Loop

source§

impl ToTokens for Lt

source§

impl ToTokens for macro_tools::syn::token::Macro

source§

impl ToTokens for Match

source§

impl ToTokens for Minus

source§

impl ToTokens for MinusEq

source§

impl ToTokens for Mod

source§

impl ToTokens for Move

source§

impl ToTokens for Mut

source§

impl ToTokens for Ne

source§

impl ToTokens for Not

source§

impl ToTokens for Or

source§

impl ToTokens for OrEq

source§

impl ToTokens for OrOr

source§

impl ToTokens for Override

source§

impl ToTokens for PathSep

source§

impl ToTokens for Percent

source§

impl ToTokens for PercentEq

source§

impl ToTokens for Plus

source§

impl ToTokens for PlusEq

source§

impl ToTokens for Pound

source§

impl ToTokens for Priv

source§

impl ToTokens for Pub

source§

impl ToTokens for Question

source§

impl ToTokens for RArrow

source§

impl ToTokens for Ref

source§

impl ToTokens for Return

source§

impl ToTokens for SelfType

source§

impl ToTokens for SelfValue

source§

impl ToTokens for Semi

source§

impl ToTokens for Shl

source§

impl ToTokens for ShlEq

source§

impl ToTokens for Shr

source§

impl ToTokens for ShrEq

source§

impl ToTokens for Slash

source§

impl ToTokens for SlashEq

source§

impl ToTokens for Star

source§

impl ToTokens for StarEq

source§

impl ToTokens for Static

source§

impl ToTokens for Struct

source§

impl ToTokens for Super

source§

impl ToTokens for Tilde

source§

impl ToTokens for Trait

source§

impl ToTokens for Try

source§

impl ToTokens for macro_tools::syn::token::Type

source§

impl ToTokens for Typeof

source§

impl ToTokens for Underscore

source§

impl ToTokens for Union

source§

impl ToTokens for Unsafe

source§

impl ToTokens for Unsized

source§

impl ToTokens for Use

source§

impl ToTokens for Virtual

source§

impl ToTokens for Where

source§

impl ToTokens for While

source§

impl ToTokens for Yield

source§

impl ToTokens for GenericsWithWhere

source§

impl ToTokens for AttributesInner

source§

impl ToTokens for AttributesOuter

source§

impl ToTokens for Equation

source§

impl ToTokens for Tokens

source§

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

source§

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

source§

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

source§

impl<T1, T2> ToTokens for macro_tools::protected::Pair<T1, T2>
where T1: Element + ToTokens, T2: Element + ToTokens,

source§

impl<T> ToTokens for Many<T>
where T: Element + ToTokens,

source§

impl<T, P> ToTokens for macro_tools::syn::punctuated::Pair<T, P>
where T: ToTokens, P: ToTokens,

source§

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