An alternative lightweight version of quote.
-
Very lightweight and produces extremely lean, minimal code compare to
quote
-
Unlike
quote
,quote2
allows direct mutation of tokens without creating newTokenStream
instances, enhancing runtime performance.similar to write macro.
Add it as a dependency to your Rust project by adding the following line to your
Cargo.toml
file:
[dependencies]
quote2 = "0.9"
use quote2::{proc_macro2::TokenStream, quote, Quote};
let body = quote(|t| {
for n in 1..7 {
if n % 2 == 0 {
quote!(t, {
println!("{}", #n);
});
}
}
});
let mut t = TokenStream::new();
quote!(t, {
fn main() {
#body
}
});
Generated code:
fn main() {
println!("{}", 2i32);
println!("{}", 4i32);
println!("{}", 6i32);
}