كيفية استخدام الماكرو في عدة ملفات وحدات Rust؟
مرحبًا! أتعلم Rust وواجهت مشكلة عند محاولة نقل الماكرو إلى وحدات منفصلة. لدي مشروع حيث عرّفت ماكرو مفيد `my_println!` في ملف `main.rs`. أريد استخدامه في وحدات أخرى موجودة في ملفات منفصلة.
إليك هيكل مشروعي:
```
src/
main.rs
utils/
mod.rs
helper.rs
```
في `main.rs` عرّفت الماكرو:
```rust
macro_rules! my_println {
($($arg:tt)*) => {
println!("[LOG] {}", format!($($arg)*));
};
}
mod utils;
```
في `utils/mod.rs` أعلنت عن وحدة فرعية:
```rust
pub mod helper;
```
في `utils/helper.rs` أحاول استخدام الماكرو:
```rust
pub fn do_something() {
my_println!("Hello from helper!");
}
```
لكن المترجم يعطي خطأ: `error: cannot find macro 'my_println' in this scope`. قرأت أن الماكرو في Rust لا يتم تصديرها افتراضيًا مثل الدوال. كيف أنظم الكود بشكل صحيح ليكون الماكرو متاحًا في جميع وحدات المشروع؟ هل أحتاج إلى استخدام `#