Avatar ·

Rust प्रोग्राम में Cargo पैकेज के मेटाडेटा (version, name, description) कैसे प्राप्त करें?

सभी को नमस्ते! मैं Rust सीखना शुरू कर रहा हूँ और एक छोटी कमांड लाइन उपयोगिता लिख रहा हूँ। मैं चाहता हूँ कि `--version` फ्लैग के साथ चलाने पर प्रोग्राम सिर्फ version नंबर नहीं, बल्कि, उदाहरण के लिए: "MyApp v0.2.1 (2024-05-20)" प्रिंट करे। समस्या यह है कि मैं कोड में version को hardcode नहीं करना चाहता — यह गलत है, क्योंकि यह पहले से `Cargo.toml` फ़ाइल में निर्दिष्ट है। संकलन या निष्पादन के दौरान इस जानकारी को सही तरीके से कैसे निकालें? मैंने सीधे `Cargo.toml` फ़ाइल पढ़ने की कोशिश की, लेकिन यह अटपटा लगता है, और release build में फ़ाइल मौजूद नहीं हो सकती। मैंने `env!()` मैक्रो के बारे में सुना है, लेकिन समझ नहीं आता कि इसे Cargo से कैसे जोड़ूँ। यहाँ मेरी वर्तमान संरचना का उदाहरण है: ```rust fn main() { // Cargo.toml से version कैसे प्राप्त करें? println!("MyApp v{}", get_version()); } ``` मुझे प्राप्त करना है: पैकेज का नाम, version, description, authors और संभवतः git commit hash। कृपया बताएं कि Rust के लिए इसे सही और idiomatic तरीके से कैसे करें? कौन से ready-made crates या built-in साधन उपलब्ध हैं? पहले से धन्यवाद!