Как импортировать все макросы, производные и процедурные макросы в 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::*;