Iterate over the variants of an enum
Sometimes we need to go over all the variants of an enum and do something for each one of them.
examples/enums/list-variants/Cargo.toml
[package] name = "list-variants" version = "0.1.0" edition = "2021" [dependencies] strum = "0.26.3" strum_macros = "0.26.4"
examples/enums/list-variants/src/main.rs
use strum::IntoEnumIterator; use strum_macros::EnumIter; #[derive(EnumIter, Debug, PartialEq)] enum Animal { Cat, Dog, Snake, Camel, Crab, } fn main() { for animal in Animal::iter() { println!("{animal:?}"); } }
Cat Dog Snake Camel Crab