# Trait quote::TokenStreamExt

source · [−]

    pub trait TokenStreamExt: Sealed {
        fn append<U>(&mut self, token: U)
        where
            U: Into<TokenTree>;
        fn append_all<I>(&mut self, iter: I)
        where
            I: IntoIterator,
            I::Item: ToTokens;
        fn append_separated<I, U>(&mut self, iter: I, op: U)
        where
            I: IntoIterator,
            I::Item: ToTokens,
            U: ToTokens;
        fn append_terminated<I, U>(&mut self, iter: I, term: U)
        where
            I: IntoIterator,
            I::Item: ToTokens,
            U: ToTokens;
    }

Expand description

TokenStream extension trait with methods for appending tokens.

This trait is sealed and cannot be implemented outside of the `quote` crate.

## Required Methods

source

#### fn append<U>(&mut self, token: U) where
U: Into<TokenTree>,

For use by `ToTokens` implementations.

Appends the token specified to this list of tokens.

source

#### fn append_all<I>(&mut self, iter: I) where
I: IntoIterator,
I::Item: ToTokens,

For use by `ToTokens` implementations.

    struct X;

    impl ToTokens for X {
        fn to_tokens(&self, tokens: &mut TokenStream) {
            tokens.append_all(&[true, false]);
        }
    }

    let tokens = quote!(#X);
    assert_eq!(tokens.to_string(), "true false");

source

#### fn append_separated<I, U>(&mut self, iter: I, op: U) where
I: IntoIterator,
I::Item: ToTokens,
U: ToTokens,

For use by `ToTokens` implementations.

Appends all of the items in the iterator `I`, separated by the tokens `U`.

source

#### fn append_terminated<I, U>(&mut self, iter: I, term: U) where
I: IntoIterator,
I::Item: ToTokens,
U: ToTokens,

For use by `ToTokens` implementations.

Appends all tokens in the iterator `I`, appending `U` after each element, including after the last element of the iterator.

## Implementations on Foreign Types

source

### impl TokenStreamExt for TokenStream

source

#### fn append<U>(&mut self, token: U) where
U: Into<TokenTree>,

source

#### fn append_all<I>(&mut self, iter: I) where
I: IntoIterator,
I::Item: ToTokens,

source

#### fn append_separated<I, U>(&mut self, iter: I, op: U) where
I: IntoIterator,
I::Item: ToTokens,
U: ToTokens,

source

#### fn append_terminated<I, U>(&mut self, iter: I, term: U) where
I: IntoIterator,
I::Item: ToTokens,
U: ToTokens,

## Implementors