Cómo iterar sobre todas las variantes de una enumeración (enum) en Rust
¡Hola a todos! Acabo de empezar a aprender Rust y me encontré con un problema. Tengo una enumeración que describe colores:
```rust
enum Color {
Red,
Green,
Blue,
Yellow,
}
```
Necesito mostrar todos los colores posibles en pantalla o, por ejemplo, guardarlos en un vector. En otros lenguajes, como Java o C#, usaría `values()` o algo similar. Pero en Rust no encontré una forma incorporada de simplemente iterar sobre todas las variantes de un `enum`.
Intenté escribir algo como:
```rust
for color in Color {
println!("{:?}", color);
}
```
Pero el compilador se queja de que `Color` no implementa el trait `Iterator`. Entiendo que Rust es un lenguaje de sistemas y tiene su propia filosofía, pero ¿no hay una forma sencilla de iterar sobre todas las constantes de una enumeración? ¿Quizás existe alguna macro o biblioteca? ¿O tengo que escribir manualmente una función que devuelva todas las variantes cada vez?
Por favor, indíquenme cómo se hace correctamente. ¡Gracias de antemano!
<<>>