Avatar ·

Rust में कस्टम एरर टाइप्स को सही तरीके से कैसे बनाएं और उपयोग करें?

सभी को नमस्ते! मैं Rust में नौसिखिया हूँ और एरर हैंडलिंग को समझने की कोशिश कर रहा हूँ। मैंने किताब पढ़ी, लेकिन फिर भी मुझे समझ नहीं आ रहा कि लाइब्रेरी के लिए अपने एरर टाइप्स को सही तरीके से कैसे बनाया जाए। मेरे पास एक सरल कॉन्फ़िगरेशन फ़ाइल पार्सर है। मैं चाहता हूँ कि यह समझने योग्य एरर लौटाए: "लाइन X पर सिंटैक्स एरर", "अज्ञात पैरामीटर", "I/O एरर"। अभी मैंने ऐसा किया है: ```rust enum ConfigError { IoError, ParseError, UnknownParam, } ``` लेकिन यह असुविधाजनक है — इस बारे में कोई जानकारी नहीं है कि एरर वास्तव में कहाँ हुआ। साथ ही, मैं `std::io::Error` और अपने टाइप के साथ एक साथ `?` का उपयोग नहीं कर सकता। मैंने `std::error::Error`, `Display` और `Debug` ट्रेट्स के बारे में पढ़ा, लेकिन समझ नहीं आया कि उन्हें सही तरीके से कैसे implement किया जाए। मैंने देखा कि कई लोग `thiserror` क्रेट का उपयोग करते हैं, लेकिन पहले मैं समझना चाहता हूँ कि कैसे