Trait quote::TokenStreamExt

source ·
pub trait TokenStreamExt: Sealed {
    // Required methods
    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§