[][src]Trait panini_common::rs::ToTokens

pub trait ToTokens {
    fn to_tokens(&self, tokens: &mut TokenStream);

    fn into_token_stream(self) -> TokenStream { ... }
}

Types that can be interpolated inside a quote! invocation.

Required methods

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:

This code runs with edition 2018
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);
        }
    }
}
Loading content...

Provided methods

fn into_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.

Loading content...

Implementations on Foreign Types

impl ToTokens for u8[src]

impl ToTokens for Group[src]

impl ToTokens for i8[src]

impl ToTokens for str[src]

impl<T> ToTokens for Box<T> where
    T: ToTokens + ?Sized
[src]

impl<'a, T> ToTokens for &'a mut T where
    T: ToTokens + ?Sized
[src]

impl ToTokens for i32[src]

impl ToTokens for f64[src]

impl ToTokens for u64[src]

impl ToTokens for i64[src]

impl ToTokens for bool[src]

impl ToTokens for u16[src]

impl ToTokens for f32[src]

impl ToTokens for u32[src]

impl ToTokens for char[src]

impl<T> ToTokens for Rc<T> where
    T: ToTokens + ?Sized
[src]

impl ToTokens for usize[src]

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

impl ToTokens for String[src]

impl<'a, T> ToTokens for &'a T where
    T: ToTokens + ?Sized
[src]

impl<T> ToTokens for Option<T> where
    T: ToTokens
[src]

impl ToTokens for i16[src]

impl ToTokens for isize[src]

impl ToTokens for TypeInfer[src]

impl ToTokens for PredicateEq[src]

impl ToTokens for GenericParam[src]

impl ToTokens for ItemTraitAlias[src]

impl ToTokens for Struct[src]

impl ToTokens for UseName[src]

impl ToTokens for EqEq[src]

impl ToTokens for AndEq[src]

impl ToTokens for PatBox[src]

impl ToTokens for ExprLit[src]

impl ToTokens for LitByte[src]

impl ToTokens for PredicateLifetime[src]

impl ToTokens for PatVerbatim[src]

impl ToTokens for For[src]

impl ToTokens for VisPublic[src]

impl ToTokens for ExprClosure[src]

impl ToTokens for FnArg[src]

impl ToTokens for ExprIndex[src]

impl ToTokens for Use[src]

impl ToTokens for Yield[src]

impl ToTokens for TypeNever[src]

impl ToTokens for LitVerbatim[src]

impl ToTokens for Div[src]

impl ToTokens for ConstParam[src]

impl ToTokens for Fields[src]

impl ToTokens for Pound[src]

impl ToTokens for PatMacro[src]

impl ToTokens for ExprLoop[src]

impl ToTokens for ExprMacro[src]

impl ToTokens for PatTupleStruct[src]

impl ToTokens for ItemUnion[src]

impl ToTokens for LitByteStr[src]

impl ToTokens for LitInt[src]

impl ToTokens for ExprMatch[src]

impl ToTokens for NestedMeta[src]

impl ToTokens for Eq[src]

impl ToTokens for LitFloat[src]

impl ToTokens for Final[src]

impl ToTokens for BareFnArgName[src]

impl ToTokens for Bang[src]

impl ToTokens for DotDotEq[src]

impl ToTokens for Label[src]

impl ToTokens for ImplItemType[src]

impl ToTokens for ExprLet[src]

impl ToTokens for Continue[src]

impl ToTokens for DivEq[src]

impl ToTokens for ExprAssignOp[src]

impl<T, P> ToTokens for Punctuated<T, P> where
    P: ToTokens,
    T: ToTokens
[src]

impl ToTokens for TypePath[src]

impl ToTokens for Caret[src]

impl ToTokens for Item[src]

impl ToTokens for WhereClause[src]

impl ToTokens for TypeTraitObject[src]

impl ToTokens for Priv[src]

impl ToTokens for TypeParen[src]

impl ToTokens for ImplItemVerbatim[src]

impl ToTokens for ExprTryBlock[src]

impl ToTokens for Local[src]

impl<'a> ToTokens for Turbofish<'a>[src]

impl ToTokens for LifetimeDef[src]

impl ToTokens for Static[src]

impl ToTokens for Fn[src]

impl ToTokens for ItemMod[src]

impl ToTokens for ForeignItemFn[src]

impl ToTokens for PathSegment[src]

impl ToTokens for PatRef[src]

impl ToTokens for TypeGroup[src]

impl ToTokens for ExprType[src]

impl ToTokens for ExprStruct[src]

impl<'a> ToTokens for ImplGenerics<'a>[src]

impl ToTokens for In[src]

impl ToTokens for BareFnArg[src]

impl ToTokens for ExprAssign[src]

impl ToTokens for ExprContinue[src]

impl ToTokens for Sub[src]

impl ToTokens for FieldValue[src]

impl ToTokens for Index[src]

impl ToTokens for Loop[src]

impl ToTokens for Macro[src]

impl ToTokens for Else[src]

impl ToTokens for Const[src]

impl ToTokens for SelfValue[src]

impl ToTokens for TypeTuple[src]

impl ToTokens for Do[src]

impl ToTokens for Mod[src]

impl ToTokens for Member[src]

impl ToTokens for Shr[src]

impl ToTokens for Super[src]

impl ToTokens for Constraint[src]

impl ToTokens for ItemMacro[src]

impl ToTokens for Box[src]

impl ToTokens for Or[src]

impl ToTokens for TraitItemType[src]

impl ToTokens for ImplItemExistential[src]

impl ToTokens for Ne[src]

impl ToTokens for ItemStatic[src]

impl ToTokens for Type[src]

impl ToTokens for ExprBinary[src]

impl ToTokens for PatWild[src]

impl ToTokens for ExprTuple[src]

impl ToTokens for ReturnType[src]

impl ToTokens for TraitItem[src]

impl ToTokens for LitBool[src]

impl ToTokens for VisCrate[src]

impl ToTokens for Dot[src]

impl ToTokens for ItemForeignMod[src]

impl ToTokens for AddEq[src]

impl ToTokens for Typeof[src]

impl ToTokens for Pub[src]

impl ToTokens for Semi[src]

impl ToTokens for ExprForLoop[src]

impl ToTokens for Extern[src]

impl ToTokens for Where[src]

impl ToTokens for PatSlice[src]

impl ToTokens for ExprTry[src]

impl ToTokens for Mut[src]

impl ToTokens for RemEq[src]

impl ToTokens for LArrow[src]

impl ToTokens for ExprIf[src]

impl ToTokens for ExprReturn[src]

impl ToTokens for FieldsNamed[src]

impl ToTokens for PatStruct[src]

impl ToTokens for Dot2[src]

impl ToTokens for TypeVerbatim[src]

impl ToTokens for Le[src]

impl ToTokens for RArrow[src]

impl ToTokens for ExprRange[src]

impl ToTokens for ItemType[src]

impl ToTokens for Auto[src]

impl ToTokens for MethodSig[src]

impl ToTokens for ExprUnsafe[src]

impl ToTokens for ExprInPlace[src]

impl ToTokens for Block[src]

impl ToTokens for File[src]

impl ToTokens for Impl[src]

impl ToTokens for Field[src]

impl ToTokens for ImplItemMacro[src]

impl ToTokens for ImplItem[src]

impl ToTokens for ForeignItem[src]

impl ToTokens for At[src]

impl ToTokens for BinOp[src]

impl ToTokens for PatPath[src]

impl ToTokens for OrOr[src]

impl ToTokens for ArgCaptured[src]

impl ToTokens for Crate[src]

impl ToTokens for TraitItemVerbatim[src]

impl ToTokens for If[src]

impl ToTokens for Lifetime[src]

impl ToTokens for ExprField[src]

impl ToTokens for Path[src]

impl ToTokens for TraitItemMethod[src]

impl ToTokens for TypeParamBound[src]

impl ToTokens for ExprParen[src]

impl ToTokens for Gt[src]

impl ToTokens for Visibility[src]

impl ToTokens for ParenthesizedGenericArguments[src]

impl ToTokens for ExprBox[src]

impl ToTokens for Match[src]

impl ToTokens for SubEq[src]

impl ToTokens for Star[src]

impl ToTokens for TypeImplTrait[src]

impl ToTokens for GenericMethodArgument[src]

impl ToTokens for ImplItemMethod[src]

impl ToTokens for TraitItemConst[src]

impl ToTokens for Question[src]

impl ToTokens for Move[src]

impl ToTokens for TraitBoundModifier[src]

impl ToTokens for Add[src]

impl<T, P> ToTokens for Pair<T, P> where
    P: ToTokens,
    T: ToTokens
[src]

impl ToTokens for ExprVerbatim[src]

impl ToTokens for TypeParam[src]

impl ToTokens for ItemMacro2[src]

impl ToTokens for ExprGroup[src]

impl ToTokens for UnOp[src]

impl ToTokens for ExprWhile[src]

impl ToTokens for TraitBound[src]

impl ToTokens for PatRange[src]

impl ToTokens for Type[src]

impl ToTokens for ItemVerbatim[src]

impl ToTokens for ItemTrait[src]

impl ToTokens for Abstract[src]

impl ToTokens for While[src]

impl ToTokens for ExprUnary[src]

impl ToTokens for DeriveInput[src]

impl ToTokens for Enum[src]

impl ToTokens for FieldPat[src]

impl ToTokens for ExprBreak[src]

impl ToTokens for Colon[src]

impl ToTokens for Comma[src]

impl ToTokens for ExprYield[src]

impl ToTokens for ShlEq[src]

impl ToTokens for LitStr[src]

impl ToTokens for Ge[src]

impl ToTokens for AndAnd[src]

impl ToTokens for MulEq[src]

impl ToTokens for Variant[src]

impl ToTokens for TypeMacro[src]

impl ToTokens for ExprCall[src]

impl ToTokens for ItemEnum[src]

impl ToTokens for Union[src]

impl ToTokens for Lit[src]

impl ToTokens for Colon2[src]

impl ToTokens for ImplItemConst[src]

impl ToTokens for TypeReference[src]

impl ToTokens for ExprPath[src]

impl ToTokens for Default[src]

impl ToTokens for PredicateType[src]

impl ToTokens for Existential[src]

impl ToTokens for CaretEq[src]

impl ToTokens for TraitItemMacro[src]

impl ToTokens for TypeArray[src]

impl ToTokens for Try[src]

impl ToTokens for Lt[src]

impl ToTokens for Let[src]

impl ToTokens for Abi[src]

impl ToTokens for MetaList[src]

impl ToTokens for ForeignItemStatic[src]

impl ToTokens for Override[src]

impl ToTokens for ItemFn[src]

impl ToTokens for TypePtr[src]

impl ToTokens for BoundLifetimes[src]

impl ToTokens for ItemStruct[src]

impl ToTokens for ArgSelf[src]

impl ToTokens for ExprCast[src]

impl ToTokens for LitChar[src]

impl ToTokens for VisRestricted[src]

impl ToTokens for ItemExistential[src]

impl ToTokens for Dyn[src]

impl ToTokens for FatArrow[src]

impl ToTokens for ForeignItemVerbatim[src]

impl ToTokens for ExprAsync[src]

impl ToTokens for SelfType[src]

impl ToTokens for UseRename[src]

impl ToTokens for Binding[src]

impl ToTokens for Tilde[src]

impl ToTokens for Dot3[src]

impl ToTokens for ExprReference[src]

impl ToTokens for ItemUse[src]

impl ToTokens for Arm[src]

impl<'a> ToTokens for TypeGenerics<'a>[src]

impl ToTokens for Shl[src]

impl ToTokens for ItemExternCrate[src]

impl ToTokens for Underscore[src]

impl ToTokens for Become[src]

impl ToTokens for UseGlob[src]

impl ToTokens for MetaNameValue[src]

impl ToTokens for PatTuple[src]

impl ToTokens for ItemImpl[src]

impl ToTokens for PatIdent[src]

impl ToTokens for And[src]

impl ToTokens for Async[src]

impl ToTokens for ForeignItemMacro[src]

impl ToTokens for Rem[src]

impl ToTokens for ExprArray[src]

impl ToTokens for UsePath[src]

impl ToTokens for Macro[src]

impl ToTokens for UseGroup[src]

impl ToTokens for Unsafe[src]

impl ToTokens for TypeSlice[src]

impl ToTokens for Ref[src]

impl ToTokens for ExprRepeat[src]

impl ToTokens for UseTree[src]

impl ToTokens for ShrEq[src]

impl ToTokens for AngleBracketedGenericArguments[src]

impl ToTokens for Stmt[src]

impl ToTokens for ExprMethodCall[src]

impl ToTokens for ArgSelfRef[src]

impl ToTokens for PatLit[src]

impl ToTokens for ItemConst[src]

impl ToTokens for GenericArgument[src]

impl ToTokens for Generics[src]

impl ToTokens for Return[src]

impl ToTokens for Break[src]

impl ToTokens for PathArguments[src]

impl ToTokens for As[src]

impl ToTokens for TypeBareFn[src]

impl ToTokens for FieldsUnnamed[src]

impl ToTokens for Virtual[src]

impl ToTokens for OrEq[src]

impl ToTokens for ExprBlock[src]

impl ToTokens for Trait[src]

impl ToTokens for Unsized[src]

impl ToTokens for MethodTurbofish[src]

impl ToTokens for WherePredicate[src]

impl ToTokens for ForeignItemType[src]

Loading content...

Implementors

impl ToTokens for Expr[src]

impl ToTokens for Meta[src]

impl ToTokens for Pat[src]

impl ToTokens for TokenTree[src]

impl ToTokens for Attribute[src]

impl ToTokens for Dollar[src]

impl ToTokens for Ident[src]

impl ToTokens for Literal[src]

impl ToTokens for Punct[src]

impl ToTokens for TokenStream[src]

Loading content...