[][src]Trait quote::TokenStreamExt

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

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>(&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<T, I>(&mut self, iter: I) where
    T: ToTokens,
    I: IntoIterator<Item = T>, 

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<T, I, U>(&mut self, iter: I, op: U) where
    T: ToTokens,
    I: IntoIterator<Item = T>,
    U: ToTokens

For use by ToTokens implementations.

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

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

Loading content...

Implementations on Foreign Types

impl TokenStreamExt for TokenStream[src]

Loading content...

Implementors

Loading content...