#proc-macro-hack #nested #expression

proc-macro-nested

支持嵌套调用 proc-macro-hack 宏

8个版本

使用旧的Rust 2015

0.1.7 2021年1月13日
0.1.6 2020年6月14日
0.1.4 2020年3月17日
0.1.3 2019年3月6日
0.1.1 2018年11月21日

6#proc-macro-hack

Download history 21628/week @ 2024-03-14 22929/week @ 2024-03-21 24364/week @ 2024-03-28 21260/week @ 2024-04-04 23846/week @ 2024-04-11 25441/week @ 2024-04-18 22741/week @ 2024-04-25 25163/week @ 2024-05-02 18241/week @ 2024-05-09 20053/week @ 2024-05-16 19664/week @ 2024-05-23 22291/week @ 2024-05-30 19211/week @ 2024-06-06 21062/week @ 2024-06-13 21152/week @ 2024-06-20 18034/week @ 2024-06-27

82,842 每月下载量
用于 少于 8 crates

MIT/Apache

7KB
58 代码行

支持嵌套调用 proc-macro-hack 表达式宏。

默认情况下,通过 proc-macro-hack 定义的宏不支持嵌套调用,即 proc-macro-hack 宏调用产生的代码不能包含对同一 proc-macro-hack 宏的递归调用或对任何其他 proc-macro-hack 宏的调用。

此crate提供可选支持此类嵌套调用。

要使宏可递归调用,请从您的声明crate中添加对此crate的依赖,并更新以下代码的重新导出。

// Before
#[proc_macro_hack]
pub use demo_hack_impl::add_one;
// After
#[proc_macro_hack(support_nested)]
pub use demo_hack_impl::add_one;

您的定义crate中不需要进行任何更改,只需在声明crate中的重新导出。

限制

  • 嵌套调用由TT-muncher预处理,因此调用者的crate需要包含如果存在长时间宏调用,则需要包含以下代码。

  • 只支持最多64层嵌套调用。

无运行时依赖