首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在不使用外部机箱的情况下导入Rust 2018中的所有宏、派生宏和程序宏?

如何在不使用外部机箱的情况下导入Rust 2018中的所有宏、派生宏和程序宏?
EN

Stack Overflow用户
提问于 2018-06-23 17:21:33
回答 2查看 1.4K关注 0票数 8

我正在用Rust Edition 2018做实验。在Rust 2015中,您使用

代码语言:javascript
运行
复制
#[macro_use]
extern crate log;

用于导入宏。在Rust 2018中,extern crate可能是单一的。有没有一种方法,在不使用extern crate的情况下从机箱导入所有的宏?对于简单的宏,importing it in the modules是可以的,但是复杂的宏依赖于其他几个宏,这是不方便的。

EN

回答 2

Stack Overflow用户

发布于 2018-06-23 18:09:43

我不知道有什么方法可以只导入所有的宏,但是如果你可以导入一个crate提供的所有必要的对象,你通常应该通过编写以下代码来获得所有的宏:

代码语言:javascript
运行
复制
use the_crate_with_macros::*;

代码语言:javascript
运行
复制
use the_crate_with_macros::prelude::*; // if available

从1.30版本开始,这也适用于Rust 2015。

票数 7
EN

Stack Overflow用户

发布于 2018-10-29 22:20:54

正如您已经提到的,您可以通过

代码语言:javascript
运行
复制
use foo::mac1;

要一次导入多个宏,您可以使用nested imports

代码语言:javascript
运行
复制
use foo::{mac1, mac2, mac3};

或者依赖于板条箱的作者,他们会让你通过一个glob导入它,例如

代码语言:javascript
运行
复制
use foo::macros::*;
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50999749

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档