1个不稳定版本

0.1.0 2021年2月11日

过程宏 中排名第1891

MIT 许可证

36KB
882

简易过程宏

Rust的最新过程宏crate。

简易过程宏是一个过程宏crate,它允许你创建过程宏而无需为宏创建一个专门的crate。这就是为什么这是Rust的最新过程宏crate。

入门相对简单。只需在任意的宏定义上添加 #[easy_proc_macro::easy_proc_macro] (或者如果你更喜欢,先导入它),然后,砰!它就变成了一个过程宏。表面上变化不大,但你的宏已经获得了一种 超级能力

这种超级能力就是令牌操作块!在你的宏中添加一个令牌操作块非常简单。只需写一个带有前置美元符号的正常块,就像它是某种特殊宏语法一样,如下所示; ${/* ... */}。这些块内的代码将在 编译时 执行,并直接操作Rust的令牌,使你的宏能够做比高级 Ctrl + C + Ctrl + V 更多的事情。

在令牌操作块内部访问的令牌将是字符串,允许你随心所欲地修改令牌。令牌操作块解析出的值必须实现 ToString,或者 String&str。这个值就是令牌操作块将扩展到的值。

夜间特有功能

这个crate非常注重能够在Rust稳定编译器上编译,但Rust稳定编译器确实有一些无法提供的东西。这就是为什么这些功能只有在启用crate中的nightly功能并使用夜间编译器时才可用的原因。

更好的错误信息

提供指向实际错误代码的错误信息,而不是过程宏调用。

稳定

cannot borrow token as mutable, as it is not declared as mutable, pointing towards #[easy_proc_macro]. in this macro invocation, pointing towards my_stringify!(value, 12).

夜间

cannot borrow token as mutable, as it is not declared as mutable, pointing towards token. in this macro invocation, pointing towards my_stringify!(value, 12).

归功于proc_macro_diagnostic api。

依赖项

~4–13MB
~166K SLoC