Avatar ·

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! <<>>

Solución: usando