是否可以同时拥有一个程序宏和逻辑箱?

时间:2018-10-22 13:35:35

标签: macros rust rust-macros

当您要共享使用程序宏的库时,双箱方法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::*;的操作,但禁止这样做:编译器拒绝构建它。

是否可以反过来做?我的意思是:将程序宏板条箱导入到库中,然后重新导出宏?

1 个答案:

答案 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