Avatar ·

Rust में मॉड्यूल फ़ाइलों के बीच macros का उपयोग कैसे करें?

सभी को नमस्कार! मैं Rust में नया हूँ और अपने प्रोजेक्ट की विभिन्न फ़ाइलों में macros का उपयोग करने की कोशिश करते समय एक समस्या का सामना किया। मेरे पास एक मॉड्यूलर संरचना वाली लाइब्रेरी है, और मैं एक मॉड्यूल फ़ाइल में macro परिभाषित करना चाहता हूँ, फिर इसे दूसरे में उपयोग करना चाहता हूँ। यहाँ मेरे प्रोजेक्ट की सरलीकृत संरचना है: ``` src/ ├── main.rs ├── macros.rs └── utils/ └── mod.rs ``` `macros.rs` फ़ाइल में, मैंने एक सरल macro घोषित किया: ```rust macro_rules! say_hello { () => { println!("Hello from macro!"); }; } ``` फिर `main.rs` में, मैं मॉड्यूल इस तरह शामिल करता हूँ: ```rust mod macros; mod utils; fn main() { say_hello!(); // काम करता है! utils::do_something(); } ``` और `utils/mod.rs` में, मैं उसी macro को कॉल करने की कोशिश करता हूँ: ```rust pub fn do_something() { say_hello!(); // त्रुटि: macro नहीं मिला } ``` कंपाइलर त्रुटि देता है `error: cannot find macro 'say_hello' in this scope`। मैंने पढ़ा है कि Rust में macros विशेष तरीके से काम करते हैं, लेकिन मुझे समझ नहीं आ रहा कि उन्हें सही तरीके से कैसे उपयोग किया जाए।