Avatar ·

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.