Avatar ·

¿Cómo crear enumeraciones con valores constantes en Rust?

¡Hola, colegas! Empecé a estudiar Rust después de C++ y Python, y me encontré con un problema inesperado: ¿cómo crear correctamente enumeraciones (enums) con valores constantes? En C++ solía escribir algo como `enum Color { RED = 0xFF0000, GREEN = 0x00FF00, BLUE = 0x0000FF };`, y cada variante tenía un valor numérico. En Python usaba `IntEnum` o simplemente clases con constantes. Pero en Rust, cuando intento hacer esto: ```rust enum HttpStatus { Ok = 200, NotFound = 404, InternalServerError = 500, } ``` El compilador da un error si intento usar esos valores como enteros. Por ejemplo, quiero convertir el estado a un número para enviarlo por la red o para logging. Intenté escribir `status as u32`, pero esto solo funciona para enumeraciones que heredan explícitamente un tipo entero. ¿Y si quiero almacenar strings u otros datos complejos? Por ejemplo, para una enumeración de "errores" con códigos y descripciones textuales: ```rust enum Error { NotFound { code: 42