Я уверен, что это тривиально, но я не могу заставить его работать.
Я просмотрел http://doc.rust-lang.org/book/advanced-macros.html#scoping-and-macro-import/export, и я ценю, что в общем, способ использования макросов состоит в том, чтобы определить их, используя:
#[macro_export]
macro_rules! background(($token:expr) => (($token >> (32 + 8)) & $crate::graphics::mask::Color));
... и затем импортировать их в другой контекст, который использует их, используя:
#[macro_use]
extern crate terminal;
...
Однако я хочу, чтобы использовать макросы из ящика, где они определены.
Если моя файловая структура:
- lib.rs
- macros.rs
- foo
- foo/mod.rs
- foo/junk.rs
Как использовать макросы в macros.rs из junk.rs?
Я пробовал различные комбинации #[macro_use] mod macros
и т.д. без везения. Документация предполагает, что если макрос определен в некоторой области, то он доступен во всех дочерних модулях... означает ли это, что я должен определить свои макросы в lib.rs?