Como iterar sobre todas as variantes de uma enumeração (enum) em Rust?
Olá a todos! Estou começando a estudar Rust e me deparei com um problema. Tenho uma enumeração que descreve cores:
```rust
enum Color {
Red,
Green,
Blue,
Yellow,
}
```
Preciso exibir todas as cores possíveis na tela ou, por exemplo, armazená-las em um vetor. Em outras linguagens, como Java ou C#, eu usaria `values()` ou algo similar. Mas em Rust não encontrei uma maneira nativa de simplesmente iterar sobre todas as variantes de um `enum`.
Tentei escrever algo como:
```rust
for color in Color {
println!("{:?}", color);
}
```
Mas o compilador reclama que `Color` não implementa o trait `Iterator`. Entendo que Rust é uma linguagem de sistema e tem sua própria filosofia, mas não existe uma maneira simples de iterar sobre todas as constantes de uma enumeração? Talvez exista alguma macro ou biblioteca? Ou preciso sempre escrever manualmente uma função que retorne todas as variantes?
Por favor, me digam como fazer isso corretamente. Desde já, obrigado!
<<>>