是否可以在一个箱子中同时包含程序宏和逻辑?
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。
当您想共享一个使用过程宏的库时,双箱方法 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。