Avatar ·

Como usar macros entre arquivos de módulos em Rust?

Olá a todos! Sou novo em Rust e encontrei um problema ao tentar usar macros em diferentes arquivos do meu projeto. Tenho uma biblioteca com estrutura modular e quero definir uma macro em um arquivo de módulo e usá-la em outro. Aqui está a estrutura simplificada do meu projeto: ``` src/ ├── main.rs ├── macros.rs └── utils/ └── mod.rs ``` No arquivo `macros.rs`, declarei uma macro simples: ```rust macro_rules! say_hello { () => { println!("Hello from macro!"); }; } ``` Então, em `main.rs`, importo os módulos assim: ```rust mod macros; mod utils; fn main() { say_hello!(); // Funciona! utils::do_something(); } ``` E em `utils/mod.rs`, tento chamar a mesma macro: ```rust pub fn do_something() { say_hello!(); // Erro: macro não encontrada } ``` O compilador dá o erro `error: cannot find macro 'say_hello' in this scope`. Li que macros em Rust funcionam de forma especial, mas não entendo como usá-las corretamente.