Cómo usar macros entre archivos de módulos en Rust?
¡Hola a todos! Soy nuevo en Rust y me encontré con un problema al intentar usar macros en diferentes archivos de mi proyecto. Tengo una biblioteca con estructura modular y quiero definir un macro en un archivo de módulo y luego usarlo en otro.
Aquí está la estructura simplificada de mi proyecto:
```
src/
├── main.rs
├── macros.rs
└── utils/
└── mod.rs
```
En el archivo `macros.rs` declaré un macro simple:
```rust
macro_rules! say_hello {
() => {
println!("Hello from macro!");
};
}
```
Luego en `main.rs` importo los módulos así:
```rust
mod macros;
mod utils;
fn main() {
say_hello!(); // ¡Funciona!
utils::do_something();
}
```
Y en `utils/mod.rs` intento llamar al mismo macro:
```rust
pub fn do_something() {
say_hello!(); // Error: macro is not found
}
```
El compilador da el error `error: cannot find macro 'say_hello' in this scope`. He leído que los macros en Rust funcionan de manera especial, pero no entiendo cómo hacerlo correctamente.