3 个不稳定版本
0.2.0 | 2021年5月15日 |
---|---|
0.1.1 | 2021年5月13日 |
0.1.0 | 2021年5月13日 |
#68 in #proc-macro-attributes
在 macrotk 中使用
17KB
367 行
macrotk
Rust 的可扩展宏工具包。
我厌倦了编写处理宏参数的相同函数,特别是属性宏。结果证明,我对它的厌倦是如此之深,以至于你可以为它编写一个宏。是的,我们现在正在全速进入 宏化。
这实际上 之前已经有人做过,但它已经过时了,我想尝试编写类似的东西。
use syn::{parse_macro_input, LitStr};
use macrotk::{meta::Meta, FromMeta};
use proc_macro::TokenStream;
#[derive(FromMeta)]
struct MacroMeta {
something: LitStr,
otherthing: LitStr,
}
#[proc_macro_attribute]
pub fn cool_macro(attr: TokenStream, item: TokenStream) -> TokenStream {
let attr = parse_macro_input!(attr as Meta<MacroMeta>);
// now we can just use these fields!
let something = &attr.something;
let otherthing = &attr.something;
// ... do stuff ...
item
}
依赖关系
~1.5MB
~35K SLoC