Avatar ·

Cómo comparar dos valores enum en Rust sin usar match

¡Hola! Empecé a estudiar Rust y me encontré con un problema al trabajar con enum. Tengo una enumeración que representa el estado de un pedido: ```rust #[derive(Debug)] enum OrderStatus { Pending, Processing, Shipped, Delivered, Cancelled, } ``` Necesito simplemente verificar si el estado actual es igual a alguna variante específica, por ejemplo, `Pending`. En otros lenguajes (C++, Java) podría escribir `if (status == OrderStatus::Pending)`, pero en Rust esto no funciona: ```rust let status = OrderStatus::Pending; if status == OrderStatus::Pending { println!("El pedido está esperando procesamiento"); } ``` El compilador da un error: `binary operation `==` cannot be applied to type `OrderStatus``. Entiendo que se puede usar `match`, pero para una comprobación tan simple parece demasiado verboso: ```rust match status { OrderStatus::Pending => println!("El pedido está esperando procesamiento"), _ => {} } ``` ¿Hay alguna forma de comparar enum directamente, como en otros lenguajes? Tal vez