use enum_values::EnumValues;
#[derive(EnumValues, Debug)]
#[repr(u8)]
pub enum ErrorExitCode {
AdminCredentialsAdministratorMissing = 100,
AdminCredentialsAdministratorNoDefault = 101,
AdminCredentialsCredsFileCreate = 102,
}
#[test]
fn unit_variants() {
let variants = ErrorExitCode::variants().collect::<Vec<_>>();
eprintln!("Variants: {variants:#?}",);
assert_eq!(variants.len(), 3);
}
#[derive(EnumValues, Debug)]
#[repr(u8)]
pub enum WrappedError {
Io(std::io::Error) = 2,
Fmt(std::fmt::Error) = 3,
}
#[test]
fn newtype_variants() {
let variants = WrappedError::variants().collect::<Vec<_>>();
eprintln!("Variants: {variants:#?}",);
assert_eq!(variants.len(), 2);
assert_eq!("IO error.", variants[0].doc);
assert_eq!("Io", variants[0].name);
assert_eq!(2, variants[0].value);
assert_eq!("Fmt error.", variants[1].doc);
assert_eq!("Fmt", variants[1].name);
assert_eq!(3, variants[1].value);
}