Enum Conversion
Switching back and forth between an Enum and u8 🔗
Sources:
#!/usr/bin/env -S cargo +nightly -Zscript
---cargo
package.edition = "2021" # Desirable to stop warning but not needed
[dependencies]
strum = { version = "0.26.3", features = ["derive"] }
---
use strum::FromRepr;
#[derive(FromRepr, Debug, PartialEq)]
#[repr(u8)]
enum MyEnum {
A = 1,
B,
C,
}
fn main() {
// u8 to Enum
let x = MyEnum::from_repr(2);
assert_eq!(x, Some(MyEnum::B));
// Enum to u8
let x = MyEnum::C as u8;
assert_eq!(x, 3);
}