use std::str::FromStr;
#[derive(Clone, Copy, PartialEq, Debug, Eq)]
pub enum ConversionEndian {
Little,
Big,
}
impl FromStr for ConversionEndian {
type Err = String;
fn from_str(s: &str) -> Result<Self, Self::Err> {
match s.trim().to_ascii_lowercase().as_str() {
"little" => Ok(Self::Little),
"big" => Ok(Self::Big),
_ => Err(format!("Invalid endian argument '{s}'. Valid values are 'little' or 'big'.")),
}
}
}
pub const fn resolve_endian_feature(
little: bool,
big: bool,
default: ConversionEndian,
) -> ConversionEndian {
if little && big {
default
} else if little {
ConversionEndian::Little
} else if big {
ConversionEndian::Big
} else {
default
}
}