Trait quote::ToTokens
[−]
[src]
pub trait ToTokens { fn to_tokens(&self, tokens: &mut TokenStream); fn into_token_stream(self) -> TokenStream
where
Self: Sized, { ... } }
Types that can be interpolated inside a quote!
invocation.
Required Methods
fn to_tokens(&self, tokens: &mut TokenStream)
Write self
to the given TokenStream
.
The token append methods provided by the TokenStreamExt
extension
trait may be useful for implementing ToTokens
.
Example
Example implementation for a struct representing Rust paths like
std::cmp::PartialEq
:
extern crate quote; use quote::{TokenStreamExt, ToTokens}; extern crate proc_macro2; use proc_macro2::{TokenTree, Spacing, Span, Punct, TokenStream}; pub struct Path { pub global: bool, pub segments: Vec<PathSegment>, } impl ToTokens for Path { fn to_tokens(&self, tokens: &mut TokenStream) { for (i, segment) in self.segments.iter().enumerate() { if i > 0 || self.global { // Double colon `::` tokens.append(Punct::new(':', Spacing::Joint)); tokens.append(Punct::new(':', Spacing::Alone)); } segment.to_tokens(tokens); } } }
Provided Methods
fn into_token_stream(self) -> TokenStream where
Self: Sized,
Self: Sized,
Convert self
directly into a TokenStream
object.
This method is implicitly implemented using to_tokens
, and acts as a
convenience method for consumers of the ToTokens
trait.
Implementations on Foreign Types
impl<'a, T: ?Sized + ToTokens> ToTokens for &'a T
[src]
fn to_tokens(&self, tokens: &mut TokenStream)
[src]
fn into_token_stream(self) -> TokenStream where
Self: Sized,
[src]
Self: Sized,
impl<'a, T: ?Sized + ToTokens> ToTokens for &'a mut T
[src]
fn to_tokens(&self, tokens: &mut TokenStream)
[src]
fn into_token_stream(self) -> TokenStream where
Self: Sized,
[src]
Self: Sized,
impl<'a, T: ?Sized + ToOwned + ToTokens> ToTokens for Cow<'a, T>
[src]
fn to_tokens(&self, tokens: &mut TokenStream)
[src]
fn into_token_stream(self) -> TokenStream where
Self: Sized,
[src]
Self: Sized,
impl<T: ?Sized + ToTokens> ToTokens for Box<T>
[src]
fn to_tokens(&self, tokens: &mut TokenStream)
[src]
fn into_token_stream(self) -> TokenStream where
Self: Sized,
[src]
Self: Sized,
impl<T: ToTokens> ToTokens for Option<T>
[src]
fn to_tokens(&self, tokens: &mut TokenStream)
[src]
fn into_token_stream(self) -> TokenStream where
Self: Sized,
[src]
Self: Sized,
impl ToTokens for str
[src]
fn to_tokens(&self, tokens: &mut TokenStream)
[src]
fn into_token_stream(self) -> TokenStream where
Self: Sized,
[src]
Self: Sized,
impl ToTokens for String
[src]
fn to_tokens(&self, tokens: &mut TokenStream)
[src]
fn into_token_stream(self) -> TokenStream where
Self: Sized,
[src]
Self: Sized,
impl ToTokens for i8
[src]
fn to_tokens(&self, tokens: &mut TokenStream)
[src]
fn into_token_stream(self) -> TokenStream where
Self: Sized,
[src]
Self: Sized,
impl ToTokens for i16
[src]
fn to_tokens(&self, tokens: &mut TokenStream)
[src]
fn into_token_stream(self) -> TokenStream where
Self: Sized,
[src]
Self: Sized,
impl ToTokens for i32
[src]
fn to_tokens(&self, tokens: &mut TokenStream)
[src]
fn into_token_stream(self) -> TokenStream where
Self: Sized,
[src]
Self: Sized,
impl ToTokens for i64
[src]
fn to_tokens(&self, tokens: &mut TokenStream)
[src]
fn into_token_stream(self) -> TokenStream where
Self: Sized,
[src]
Self: Sized,
impl ToTokens for isize
[src]
fn to_tokens(&self, tokens: &mut TokenStream)
[src]
fn into_token_stream(self) -> TokenStream where
Self: Sized,
[src]
Self: Sized,
impl ToTokens for u8
[src]
fn to_tokens(&self, tokens: &mut TokenStream)
[src]
fn into_token_stream(self) -> TokenStream where
Self: Sized,
[src]
Self: Sized,
impl ToTokens for u16
[src]
fn to_tokens(&self, tokens: &mut TokenStream)
[src]
fn into_token_stream(self) -> TokenStream where
Self: Sized,
[src]
Self: Sized,
impl ToTokens for u32
[src]
fn to_tokens(&self, tokens: &mut TokenStream)
[src]
fn into_token_stream(self) -> TokenStream where
Self: Sized,
[src]
Self: Sized,
impl ToTokens for u64
[src]
fn to_tokens(&self, tokens: &mut TokenStream)
[src]
fn into_token_stream(self) -> TokenStream where
Self: Sized,
[src]
Self: Sized,
impl ToTokens for usize
[src]
fn to_tokens(&self, tokens: &mut TokenStream)
[src]
fn into_token_stream(self) -> TokenStream where
Self: Sized,
[src]
Self: Sized,
impl ToTokens for f32
[src]
fn to_tokens(&self, tokens: &mut TokenStream)
[src]
fn into_token_stream(self) -> TokenStream where
Self: Sized,
[src]
Self: Sized,
impl ToTokens for f64
[src]
fn to_tokens(&self, tokens: &mut TokenStream)
[src]
fn into_token_stream(self) -> TokenStream where
Self: Sized,
[src]
Self: Sized,
impl ToTokens for char
[src]
fn to_tokens(&self, tokens: &mut TokenStream)
[src]
fn into_token_stream(self) -> TokenStream where
Self: Sized,
[src]
Self: Sized,
impl ToTokens for bool
[src]
fn to_tokens(&self, tokens: &mut TokenStream)
[src]
fn into_token_stream(self) -> TokenStream where
Self: Sized,
[src]
Self: Sized,
impl ToTokens for Group
[src]
fn to_tokens(&self, tokens: &mut TokenStream)
[src]
fn into_token_stream(self) -> TokenStream where
Self: Sized,
[src]
Self: Sized,
impl ToTokens for Ident
[src]
fn to_tokens(&self, tokens: &mut TokenStream)
[src]
fn into_token_stream(self) -> TokenStream where
Self: Sized,
[src]
Self: Sized,
impl ToTokens for Punct
[src]
fn to_tokens(&self, tokens: &mut TokenStream)
[src]
fn into_token_stream(self) -> TokenStream where
Self: Sized,
[src]
Self: Sized,
impl ToTokens for Literal
[src]
fn to_tokens(&self, tokens: &mut TokenStream)
[src]
fn into_token_stream(self) -> TokenStream where
Self: Sized,
[src]
Self: Sized,
impl ToTokens for TokenTree
[src]
fn to_tokens(&self, dst: &mut TokenStream)
[src]
fn into_token_stream(self) -> TokenStream where
Self: Sized,
[src]
Self: Sized,