3 个版本
0.1.2 | 2020 年 8 月 3 日 |
---|---|
0.1.1 | 2020 年 7 月 31 日 |
0.1.0 | 2020 年 7 月 31 日 |
#1038 在 Rust 模式
873 每月下载量
33KB
788 行
squote
流行的 quote
crate 的基于字符串的实现。
此 crate 与 quote 的比较
当不确定时,始终优先使用 quote
。这个 crate 的创建是因为,对于非常大的代码生成,与简单的字符串连接相比,quote 可能会变慢。如果你生成代码从不使用传入的 TokenStreams(即来自某种宏),那么使用这个 crate 可能会看到一些性能提升。
正在进行 相关工作,以查看这个 crate 的性能提升是否可以合并到 quote
crate 中,在这种情况下,这个 crate 将会被弃用。
用法
use proc_macro::TokenStream;
use squote::quote;
#[proc_macro]
pub fn my_macro(stream: TokenStream) -> TokenStream {
let tokens = quote! {
impl<'a, T: ToTokens> ToTokens for &'a T {
fn to_tokens(&self, tokens: &mut TokenStream) {
(**self).to_tokens(tokens)
}
}
};
s.parse::<TokenStream>().unwrap()
}