是否可以在一个箱子中同时包含程序宏和逻辑?

Is it possible to have one crate with both procedural macros and logic?

当您想共享一个使用过程宏的库时,双箱方法 foo/foo_derive 是不可避免的吗?

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

my_proc_macro
├── Cargo.toml
├── src/lib.rs
└── my_crate
    ├── Cargo.toml
    └── src/lib.rs

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

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

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

#[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