Как импортировать все макросы, производные и процедурные макросы в Rust 2018 без использования внешнего ящика?

Я экспериментирую с Rust Edition 2018. В Rust 2015 вы используете

#[macro_use]
extern crate log;

для импорта макросов. В Русте 2018 extern crate вероятно, однотипно. Есть ли способ, чтобы импортировать все макросы из ящика без extern crate? Для простых макросов хорошо импортировать их в модули, но сложные макросы зависят от нескольких других макросов, что неудобно.

2 ответа

Я не вижу способа импортировать только все макросы, но если вы хорошо импортируете все необходимые объекты, которые предоставляет ящик, вы должны получить все макросы, написав:

use the_crate_with_macros::*;

или же

use the_crate_with_macros::prelude::*; // if available

Это также работает в Rust 2015, начиная с версии 1.30.

Как вы уже сказали, вы можете импортировать один макрос через

use foo::mac1;

Чтобы импортировать несколько макросов одновременно, вы можете использовать вложенный импорт

use foo::{mac1, mac2, mac3};

или полагаться на автора ящика, что они позволят вам импортировать его через один глобус, например

use foo::macros::*;
Другие вопросы по тегам