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
No answers yet.
Faça login para deixar uma resposta
Blogs