3个不稳定版本

0.2.0 2021年5月15日
0.1.1 2021年5月13日
0.1.0 2021年5月13日

#35#token-stream


2 个crate中使用

无版权许可

11KB
260

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
~34K SLoC