Avatar ·

Rust प्रोग्राम में Cargo पैकेज के मेटाडेटा (संस्करण, नाम, विवरण) कैसे प्राप्त करें?

सभी को नमस्कार! मैं Rust में एक CLI उपयोगिता लिख रहा हूँ और चाहता हूँ कि `--version` फ्लैग के साथ चलाने पर प्रोग्राम का संस्करण प्रदर्शित हो। लेकिन मैं कोड में "0.1.0" स्ट्रिंग को हार्डकोड नहीं करना चाहता — यह असुविधाजनक है, संस्करण को केवल `Cargo.toml` में बदलना चाहिए। समस्या: मैं समझ नहीं पा रहा हूँ कि Rust प्रोग्राम से `Cargo.toml` का डेटा कैसे पढ़ा जाए। मैंने `std::fs::read_to_string("Cargo.toml")` का उपयोग करने की कोशिश की, लेकिन यह तभी काम करता है जब प्रोग्राम प्रोजेक्ट की रूट डायरेक्टरी से चलाया जाए, और `cargo install` के माध्यम से इंस्टॉल करने के बाद `Cargo.toml` फ़ाइल बाइनरी के पास नहीं होती। यहाँ मेरा वर्तमान कोड है, जो निश्चित रूप से सही ढंग से काम नहीं करता: ```rust fn main() { let version = std::fs::read_to_string("Cargo.toml") .ok() .and_then(|s| { s.lines() .find(|l| l.starts_with("version")) .map(|l| l.trim().trim_start_matches("version = \"").trim_end_matches('"')) }) .unwrap_or("unknown"); println!("MyApp v{}", version); } ``` यह "un