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

Fre*_*ios 4 macros rust rust-macros

当你想共享一个使用程序宏的库时,双 crate 方法foo/foo_derive不可避免吗?

我想提供一个具有逻辑宏的板条箱。我尝试的第一件事是:

my_proc_macro
??? Cargo.toml
??? src/lib.rs
??? my_crate
    ??? Cargo.toml
    ??? src/lib.rs
Run Code Online (Sandbox Code Playgroud)

my_proc_macro板条箱中,我尝试过pub use my_crate::*;但禁止这样做:编译器拒绝构建它。

是否有可能以相反的方式做到这一点?我的意思是:将程序宏包导入库,然后重新导出宏?

Sve*_*ach 5

重新导出宏实际上非常简单。只需使用

#[macro_use]
extern crate my_proc_macro;
Run Code Online (Sandbox Code Playgroud)

my_crate.

serde箱可以启用该功能时,可以使用这种方式serde_derive

在2018年版,你也可以明确地转口使用PROC宏use声明