我正在用Rust Edition 2018做实验。在Rust 2015中,您使用
#[macro_use]
extern crate log;用于导入宏。在Rust 2018中,extern crate可能是单一的。有没有一种方法,在不使用extern crate的情况下从机箱导入所有的宏?对于简单的宏,importing it in the modules是可以的,但是复杂的宏依赖于其他几个宏,这是不方便的。
发布于 2018-06-23 18:09:43
我不知道有什么方法可以只导入所有的宏,但是如果你可以导入一个crate提供的所有必要的对象,你通常应该通过编写以下代码来获得所有的宏:
use the_crate_with_macros::*;或
use the_crate_with_macros::prelude::*; // if available从1.30版本开始,这也适用于Rust 2015。
发布于 2018-10-29 22:20:54
正如您已经提到的,您可以通过
use foo::mac1;要一次导入多个宏,您可以使用nested imports
use foo::{mac1, mac2, mac3};或者依赖于板条箱的作者,他们会让你通过一个glob导入它,例如
use foo::macros::*;https://stackoverflow.com/questions/50999749
复制相似问题