我正在试验Rust Edition 2018。在 Rust 2015 中,您使用
#[macro_use]
extern crate log;
用于导入宏。在 Rust 2018extern crate
中可能是单调的。有没有办法从板条箱中导入所有宏而不使用extern crate
?对于简单的宏,在模块中导入就可以了,但复杂的宏依赖于其他几个宏,这很不方便。
我正在试验Rust Edition 2018。在 Rust 2015 中,您使用
#[macro_use]
extern crate log;
用于导入宏。在 Rust 2018extern crate
中可能是单调的。有没有办法从板条箱中导入所有宏而不使用extern crate
?对于简单的宏,在模块中导入就可以了,但复杂的宏依赖于其他几个宏,这很不方便。
我没有看到任何只导入所有宏的方法,但如果你可以导入 crate 提供的所有基本对象,你通常应该通过以下方式获取所有宏:
use the_crate_with_macros::*;
或者
use the_crate_with_macros::prelude::*; // if available
从版本 1.30 开始,这也适用于 Rust 2015。
正如您已经说过的,您可以通过
use foo::mac1;
要一次导入多个宏,您可以使用嵌套导入
use foo::{mac1, mac2, mac3};
或者依靠 crate 作者,他们会让您通过单个 glob 导入它,例如
use foo::macros::*;