# [−] [src] Trait quote::ToTokens

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

        fn to_token_stream(&self) -> TokenStream { ... }
        fn into_token_stream(self) -> TokenStream
        where
            Self: Sized,
        { ... }
    }

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

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

### `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.

Loading content...

## Implementations on Foreign Types

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

#### `fn to_tokens(&self, tokens: &mut TokenStream)` [src]

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

#### `fn to_tokens(&self, tokens: &mut TokenStream)` [src]

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

#### `fn to_tokens(&self, tokens: &mut TokenStream)` [src]

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

#### `fn to_tokens(&self, tokens: &mut TokenStream)` [src]

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

#### `fn to_tokens(&self, tokens: &mut TokenStream)` [src]

### `impl<T: ToTokens> ToTokens for Option<T>` [src]

#### `fn to_tokens(&self, tokens: &mut TokenStream)` [src]

### `impl ToTokens for str` [src]

#### `fn to_tokens(&self, tokens: &mut TokenStream)` [src]

### `impl ToTokens for String` [src]

#### `fn to_tokens(&self, tokens: &mut TokenStream)` [src]

### `impl ToTokens for i8` [src]

#### `fn to_tokens(&self, tokens: &mut TokenStream)` [src]

### `impl ToTokens for i16` [src]

#### `fn to_tokens(&self, tokens: &mut TokenStream)` [src]

### `impl ToTokens for i32` [src]

#### `fn to_tokens(&self, tokens: &mut TokenStream)` [src]

### `impl ToTokens for i64` [src]

#### `fn to_tokens(&self, tokens: &mut TokenStream)` [src]

### `impl ToTokens for i128` [src]

#### `fn to_tokens(&self, tokens: &mut TokenStream)` [src]

### `impl ToTokens for isize` [src]

#### `fn to_tokens(&self, tokens: &mut TokenStream)` [src]

### `impl ToTokens for u8` [src]

#### `fn to_tokens(&self, tokens: &mut TokenStream)` [src]

### `impl ToTokens for u16` [src]

#### `fn to_tokens(&self, tokens: &mut TokenStream)` [src]

### `impl ToTokens for u32` [src]

#### `fn to_tokens(&self, tokens: &mut TokenStream)` [src]

### `impl ToTokens for u64` [src]

#### `fn to_tokens(&self, tokens: &mut TokenStream)` [src]

### `impl ToTokens for u128` [src]

#### `fn to_tokens(&self, tokens: &mut TokenStream)` [src]

### `impl ToTokens for usize` [src]

#### `fn to_tokens(&self, tokens: &mut TokenStream)` [src]

### `impl ToTokens for f32` [src]

#### `fn to_tokens(&self, tokens: &mut TokenStream)` [src]

### `impl ToTokens for f64` [src]

#### `fn to_tokens(&self, tokens: &mut TokenStream)` [src]

### `impl ToTokens for char` [src]

#### `fn to_tokens(&self, tokens: &mut TokenStream)` [src]

### `impl ToTokens for bool` [src]

#### `fn to_tokens(&self, tokens: &mut TokenStream)` [src]

### `impl ToTokens for Group` [src]

#### `fn to_tokens(&self, tokens: &mut TokenStream)` [src]

### `impl ToTokens for Ident` [src]

#### `fn to_tokens(&self, tokens: &mut TokenStream)` [src]

### `impl ToTokens for Punct` [src]

#### `fn to_tokens(&self, tokens: &mut TokenStream)` [src]

### `impl ToTokens for Literal` [src]

#### `fn to_tokens(&self, tokens: &mut TokenStream)` [src]

### `impl ToTokens for TokenTree` [src]

#### `fn to_tokens(&self, dst: &mut TokenStream)` [src]

### `impl ToTokens for TokenStream` [src]

#### `fn to_tokens(&self, dst: &mut TokenStream)` [src]

#### `fn into_token_stream(self) -> TokenStream` [src]

Loading content...

## Implementors

Loading content...