¿Cómo obtener la representación en cadena de una variante de enum en Rust?
¡Hola a todos! Acabo de empezar a aprender Rust y me encontré con un problema que parece simple, pero no encuentro una solución elegante.
Tengo un enum para los estados de un pedido:
```rust
enum OrderStatus {
Pending,
Processing,
Shipped,
Delivered,
Cancelled,
}
```
Necesito mostrar el estado actual en la consola para logging y para mostrarlo al usuario. Intenté usar simplemente `println!("{}", status)`, pero el compilador da un error de que el trait `std::fmt::Display` no está implementado para mi tipo.
Sé que se puede agregar `#[derive(Debug)]` y usar `{:?}`, pero eso da una salida como `OrderStatus::Pending`, y yo necesito solo "Pending" sin el nombre del enum. También intenté escribir una expresión match para cada variante, pero se ve muy verboso, especialmente si hay muchas variantes.
¿Alguien me puede indicar cómo obtener correctamente e idiomáticamente una cadena a partir de una variante de enum en Rust? Preferiblemente sin copias innecesarias y con el mínimo overhead. ¡Gracias de antemano!