Trait TokenStreamExt

trait TokenStreamExt: private::Sealed

TokenStream extension trait with methods for appending tokens.

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

Required Methods

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

For use by ToTokens implementations.

Appends the token specified to this list of tokens.

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

For use by ToTokens implementations.

# use quote::{quote, TokenStreamExt, ToTokens};
# use proc_macro2::TokenStream;
#
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");
fn append_separated<I, U>(self: &mut Self, iter: I, op: U)
where
    I: IntoIterator,
    <I as >::Item: ToTokens,
    U: ToTokens

For use by ToTokens implementations.

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

fn append_terminated<I, U>(self: &mut Self, iter: I, term: U)
where
    I: IntoIterator,
    <I as >::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.

Implementors