كيفية الحصول على بيانات وصف حزمة Cargo (الإصدار، الاسم، الوصف) في برنامج Rust؟
مرحبًا بالجميع! أنا بدأت في تعلم Rust وأكتب أداة سطر أوامر صغيرة. أريد أنه عند التشغيل مع العلم `--version`، يعرض البرنامج ليس فقط رقم الإصدار، بل مثلًا: "MyApp v0.2.1 (2024-05-20)".
المشكلة هي أنني لا أريد ترميز الإصدار بشكل ثابت في الكود — هذا غير صحيح، لأنه موجود بالفعل في ملف `Cargo.toml`. كيف يمكن استخراج هذه المعلومات بشكل صحيح أثناء التجميع أو التنفيذ؟
لقد جربت قراءة ملف `Cargo.toml` مباشرة، لكن هذا يبدو حلاً غير أنيق، وفي البناء النهائي قد لا يكون الملف موجودًا. سمعت عن الماكرو `env!()`، لكنني لا أفهم كيف أربطه بـ Cargo.
هذا مثال على هيكلي الحالي:
```rust
fn main() {
// كيف أحصل على الإصدار من Cargo.toml؟
println!("MyApp v{}", get_version());
}
```
أحتاج إلى الحصول على: اسم الحزمة، الإصدار، الوصف، المؤلفين، وربما هاش commit من git. أرشدوني كيف أفعل ذلك بشكل صحيح ومألوف في Rust؟ ما هي الكريتات الجاهزة أو الأدوات المدمجة؟ شكرًا مقدمًا!