Avatar ·

Como iterar sobre todas as variantes de uma enumeração (enum) em Rust?

Olá! Comecei a estudar Rust recentemente e me deparei com um problema. Tenho uma enumeração que descreve cores: ```rust enum Color { Red, Green, Blue, Yellow, } ``` Preciso imprimir todas as cores possíveis no console, mas não consigo entender como fazer isso. Em outras linguagens (como Python ou Java), eu simplesmente usaria um loop for ou obteria uma lista de todos os valores, mas em Rust não encontro uma maneira embutida. Tentei escrever algo como: ```rust for color in Color { println!("{:?}", color); } ``` Mas o compilador dá um erro: `Color` não implementa a trait `Iterator`. Ouvi dizer que Rust é uma linguagem sem reflexão em runtime, e talvez as enumerações não sejam projetadas para iteração. Mas acho estranho que em uma linguagem estaticamente tipada não haja uma maneira de iterar sobre todas as variantes. Talvez eu esteja perdendo algo? Existe alguma macro ou biblioteca que permita isso? Por favor, me diga como resolver esse problema corretamente. Preciso exatamente iterar sobre todas as variantes.