Avatar ·

Rust में ग्लोबल, म्यूटेबल सिंगलटन कैसे बनाएं?

नमस्ते साथियों! मैं Rust में नया हूँ और अपने एप्लिकेशन के लिए ग्लोबल कॉन्फ़िगरेशन लागू करने की कोशिश कर रहा हूँ। मुझे कोड के किसी भी स्थान से सेटिंग्स (जैसे logging level या file path) को पढ़ने और बदलने में सक्षम होना चाहिए। अन्य भाषाओं में मैं बस एक static variable बना देता, लेकिन Rust में यह अधिक जटिल है। यहाँ मैंने जो प्रयास किया: ```rust static CONFIG: Config = Config { logging: false }; struct Config { logging: bool, } fn main() { CONFIG.logging = true; // Error: cannot assign to static immutable } ``` कंपाइलर शिकायत करता है कि static immutable है। मैंने `static mut` आज़माया, लेकिन इसे `unsafe` की आवश्यकता है: ```rust static mut CONFIG: Config = Config { logging: false }; fn main() { unsafe { CONFIG.logging = true; // काम करता है, लेकिन unsafe } } ``` लेकिन हर जगह `unsafe` का उपयोग करना गलत लगता है। साथ ही, मैंने threads के साथ समस्याओं के बारे में सुना है — मेरा एप्लिकेशन multithreaded है। क्या कोई सुरक्षित तरीका है ग्लोबल सिंगलटन बनाने का जो म्यूटेबल हो?