Avatar ·

Como criar enumerações com valores constantes em Rust?

Olá, colegas! Comecei a estudar Rust depois de C++ e Python, e me deparei com um problema inesperado: como criar enumerações (enums) com valores constantes corretamente? Em C++, eu costumava escrever algo como `enum Color { RED = 0xFF0000, GREEN = 0x00FF00, BLUE = 0x0000FF };`, e cada variante tinha um valor numérico. Em Python, eu usava `IntEnum` ou simplesmente classes com constantes. Mas em Rust, quando tento fazer assim: ```rust enum HttpStatus { Ok = 200, NotFound = 404, InternalServerError = 500, } ``` O compilador dá erro se tento usar esses valores como inteiros. Por exemplo, quero converter o status em um número para enviar pela rede ou para logging. Tentei escrever `status as u32`, mas isso só funciona para enumerações que explicitamente herdam um tipo inteiro. E se eu quiser armazenar strings ou outros dados complexos? Por exemplo, para uma enumeração de "erros" com códigos e descrições textuais: ```rust enum Error { NotFound { code: 42