Avatar ·

Comment créer des énumérations avec des valeurs constantes en Rust ?

Bonjour, collègues ! J'ai commencé à apprendre Rust après C++ et Python, et j'ai rencontré un problème inattendu pour moi : comment créer correctement des énumérations (enums) avec des valeurs constantes ? En C++, j'avais l'habitude d'écrire quelque chose comme `enum Color { RED = 0xFF0000, GREEN = 0x00FF00, BLUE = 0x0000FF };`, et chaque variante avait une valeur numérique. En Python, j'utilisais `IntEnum` ou simplement des classes avec des constantes. Mais en Rust, quand j'essaie de faire ceci : ```rust enum HttpStatus { Ok = 200, NotFound = 404, InternalServerError = 500, } ``` Le compilateur donne une erreur si j'essaie d'utiliser ces valeurs comme des entiers. Par exemple, je veux convertir un statut en nombre pour l'envoyer sur le réseau ou pour la journalisation. J'ai essayé d'écrire `status as u32`, mais cela ne fonctionne que pour les énumérations qui héritent explicitement d'un type entier. Et si je veux stocker des chaînes de caractères ou d'autres données complexes ? Par exemple, pour une énumération "erreurs" avec des codes et des descriptions textuelles : ```rust enum Error { NotFound { code: 42