Avatar ·

كيفية مقارنة قيمتين من enum في Rust بدون استخدام match؟

مرحبًا! بدأت تعلم Rust وواجهت مشكلة أثناء العمل مع enum. لدي تعداد يمثل حالة الطلب: ```rust #[derive(Debug)] enum OrderStatus { Pending, Processing, Shipped, Delivered, Cancelled, } ``` أحتاج فقط للتحقق مما إذا كانت الحالة الحالية تساوي حالة معينة، مثل `Pending`. في لغات أخرى (C++, Java) يمكنني كتابة `if (status == OrderStatus::Pending)`، لكن هذا لا يعمل في Rust: ```rust let status = OrderStatus::Pending; if status == OrderStatus::Pending { println!("الطلب في انتظار المعالجة"); } ``` يُصدر المترجم خطأ: `binary operation `==` cannot be applied to type `OrderStatus``. أفهم أنه يمكن استخدام `match`، لكن لمثل هذا الفحص البسيط يبدو مرهقًا: ```rust match status { OrderStatus::Pending => println!("الطلب في انتظار المعالجة"), _ => {} } ``` هل هناك طريقة لمقارنة enum مباشرة، كما في اللغات الأخرى؟ ربما