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

标签 macros rust rust-macros

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

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

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 .

关于macros - 是否可以在一个箱子中同时包含程序宏和逻辑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52930744/

相关文章:

rust - 是否可以在纯 Rust 宏中编写像 `print!` 这样复杂的东西?

rust - 根据结构字段类型创建结构的宏

visual-studio-2012 - 我应该如何在 VS2012 中更改 QTDIR 的值

rust - 如何从 `src` 导入函数进行测试?

rust - 如何遍历盒装迭代器?

rust - 如何处理我从 HashMap 获得的值

rust - 如何区分macro_rules宏中的不同种类的项目?

C 错误 : missing whitespace after the macro name

c - C 中的内核模块 __init 宏

c++ - 为什么在 CUDA 的 __global__ 内核中使用 max 和 min 宏没有给出正确答案?