Avatar ·

Wie verwendet man Makros zwischen Dateien von Modulen in Rust?

Hallo zusammen! Ich bin neu in Rust und habe ein Problem beim Versuch, Makros in verschiedenen Dateien meines Projekts zu verwenden. Ich habe eine Bibliothek mit einer modularen Struktur und möchte ein Makro in einer Moduldatei definieren und es dann in einer anderen verwenden.\n\nHier ist die vereinfachte Struktur meines Projekts:\n\n```\nsrc/\n├── main.rs\n├── macros.rs\n└── utils/\n └── mod.rs\n```\n\nIn der Datei `macros.rs` habe ich ein einfaches Makro deklariert:\n\n```rust\nmacro_rules! say_hello {\n () => {\n println!("Hello from macro!");\n };\n}\n```\n\nDann binde ich in `main.rs` die Module wie folgt ein:\n\n```rust\nmod macros;\nmod utils;\n\nfn main() {\n say_hello!(); // Funktioniert!\n utils::do_something();\n}\n```\n\nUnd in `utils/mod.rs` versuche ich, dasselbe Makro aufzurufen:\n\n```rust\npub fn do_something() {\n say_hello!(); // Fehler: Makro nicht im Gültigkeitsbereich\n}\n```\n