Avatar ·

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!