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.