Como obter a representação em string de uma variante de enum em Rust?
Olá a todos! Comecei a aprender Rust recentemente e me deparei com um problema que parece simples, mas não consigo encontrar uma solução elegante.
Tenho uma enumeração para status de pedido:
```rust
enum OrderStatus {
Pending,
Processing,
Shipped,
Delivered,
Cancelled,
}
```
Preciso exibir o status atual no console para logging e para mostrar ao usuário. Tentei usar simplesmente `println!("{}", status)`, mas o compilador dá erro informando que a trait `std::fmt::Display` não está implementada para o meu tipo.
Sei que posso adicionar `#[derive(Debug)]` e usar `{:?}`, mas isso gera uma saída como `OrderStatus::Pending`, enquanto eu preciso apenas "Pending" sem o nome da enumeração. Também tentei escrever uma expressão match para cada variante, mas isso parece muito verboso, especialmente se houver muitas variantes.
Alguém pode me dizer como obter corretamente e de forma idiomática uma string a partir de uma variante de enum em Rust? De preferência sem cópia desnecessária e com o mínimo de overhead. Desde já, obrigado!