Avatar ·

Comment itérer sur tous les variants d'une énumération (enum) en Rust ?

Bonjour à tous ! Je viens de commencer à apprendre Rust et j'ai rencontré un problème. J'ai une énumération qui décrit les couleurs : ```rust enum Color { Red, Green, Blue, Yellow, } ``` Je dois afficher toutes les couleurs possibles à l'écran ou, par exemple, les stocker dans un vecteur. Dans d'autres langages, comme Java ou C#, j'utiliserais `values()` ou quelque chose de similaire. Mais en Rust, je n'ai pas trouvé de moyen intégré pour simplement itérer sur tous les variants d'un `enum`. J'ai essayé d'écrire quelque chose comme : ```rust for color in Color { println!("{:?}", color); } ``` Mais le compilateur se plaint que `Color` n'implémente pas le trait `Iterator`. Je comprends que Rust est un langage système avec sa propre philosophie, mais n'existe-t-il vraiment pas de moyen simple d'itérer sur toutes les constantes d'une énumération ? Peut-être y a-t-il une macro ou une bibliothèque ? Ou dois-je écrire manuellement une fonction qui retourne tous les variants à chaque fois ? Indiquez-moi, s'il vous plaît, comment faire correctement. Merci d'avance ! <<>>

Solution : utiliser l