Avatar ·

كيفية الحصول على تمثيل نصي لمتغير التعداد (enum) في Rust؟

مرحباً بالجميع! لقد بدأت للتو في تعلم Rust وواجهت مشكلة تبدو بسيطة، لكنني لا أستطيع إيجاد حل أنيق. لدي تعداد لحالات الطلب: ```rust enum OrderStatus { Pending, Processing, Shipped, Delivered, Cancelled, } ``` أحتاج إلى طباعة الحالة الحالية في وحدة التحكم للتسجيل وللعرض للمستخدم. جربت ببساطة استخدام `println!("{}", status)`، لكن المترجم أظهر خطأ بأن trait `std::fmt::Display` غير مطبّق لنوعي. أعلم أنه يمكن إضافة `#[derive(Debug)]` واستخدام `{:?}`، لكن هذا يعطي مخرجات مثل `OrderStatus::Pending`، بينما أحتاج فقط "Pending" بدون اسم التعداد. كما جربت كتابة تعبير match لكل متغير، لكن هذا يبدو مرهقاً جداً، خاصة إذا كان هناك العديد من المتغيرات. أرشدوني، كيف يمكن الحصول على نص من متغير enum في Rust بشكل صحيح وidiomatic؟ ويفضل بدون نسخ زائد وبأقل overhead. شكراً مسبقاً!