Avatar ·

كيفية استخدام الماكرو في عدة ملفات وحدات 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 لا يتم تصديرها افتراضيًا مثل الدوال. كيف أنظم الكود بشكل صحيح ليكون الماكرو متاحًا في جميع وحدات المشروع؟ هل أحتاج إلى استخدام `#