Trait quote::TokenStreamExt
source · pub trait TokenStreamExt: Sealed {
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§
sourcefn append<U>(&mut self, token: U)where
U: Into<TokenTree>,
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.
sourcefn append_all<I>(&mut self, iter: I)where
I: IntoIterator,
I::Item: ToTokens,
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");
sourcefn append_separated<I, U>(&mut self, iter: I, op: U)where
I: IntoIterator,
I::Item: ToTokens,
U: ToTokens,
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
.
sourcefn append_terminated<I, U>(&mut self, iter: I, term: 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,
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.