proc_quote

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

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

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)

Source§

fn append_separated<I, U>(&mut self, iter: I, op: U)

Source§

fn append_terminated<I, U>(&mut self, iter: I, term: U)

Implementors§