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 as IntoIterator>::Item: ToTokens;
    fn append_separated<I, U>(&mut self, iter: I, op: U)
       where I: IntoIterator,
             <I as IntoIterator>::Item: ToTokens,
             U: ToTokens;
    fn append_terminated<I, U>(&mut self, iter: I, term: U)
       where I: IntoIterator,
             <I as IntoIterator>::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)

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)

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)

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.

Object Safety§

This trait is not object safe.

Implementors§