当您要共享使用程序宏的库时,双箱方法foo
/ foo_derive
是不可避免的吗?
我想提供一个具有逻辑和宏的板条箱。我尝试的第一件事是:
my_proc_macro
├── Cargo.toml
├── src/lib.rs
└── my_crate
├── Cargo.toml
└── src/lib.rs
在my_proc_macro
的板条箱中,我尝试进行pub use my_crate::*;
的操作,但禁止这样做:编译器拒绝构建它。
是否可以反过来做?我的意思是:将程序宏板条箱导入到库中,然后重新导出宏?
答案 0 :(得分:3)
重新导出宏实际上很简单。只需使用
#[macro_use]
extern crate my_proc_macro;
位于my_crate
的根中。
The serde
crate can be used this way when enabling the feature serde_derive
.
在2018年版中,您也可以explicitly re-export proc macros using use
declarations。