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
No answers yet.
Inicia sesión para dejar una respuesta