Avatar ·

Como comparar dois valores enum em Rust sem usar match?

Olá! Comecei a estudar Rust e me deparei com um problema ao trabalhar com enum. Eu tenho uma enumeração representando o status do pedido:\n\n```rust\n#[derive(Debug)]\nenum OrderStatus {\n Pending,\n Processing,\n Shipped,\n Delivered,\n Cancelled,\n}\n```\n\nPreciso apenas verificar se o status atual é igual a alguma variante específica, por exemplo, `Pending`. Em outras linguagens (C++, Java) eu poderia escrever `if (status == OrderStatus::Pending)`, mas no Rust isso não funciona:\n\n```rust\nlet status = OrderStatus::Pending;\nif status == OrderStatus::Pending {\n println!("Pedido aguardando processamento");\n}\n```\n\nO compilador retorna um erro: `binary operation `==` cannot be applied to type `OrderStatus``. Eu entendo que posso usar `match`, mas para uma verificação tão simples parece muito