use std::fmt::{Display, Formatter, Result as FmtResult};
use valuable::Valuable;
#[derive(Copy, Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Hash, Valuable)]
pub enum MionDiscImageType {
WUMAD,
WUM,
Unknown(u8),
}
impl Display for MionDiscImageType {
fn fmt(&self, fmt: &mut Formatter<'_>) -> FmtResult {
match *self {
Self::WUMAD => write!(fmt, "WUMAD"),
Self::WUM => write!(fmt, "WUM/UNSET"),
Self::Unknown(val) => write!(fmt, "Unk({val})"),
}
}
}
impl From<u8> for MionDiscImageType {
fn from(value: u8) -> Self {
match value {
255 => MionDiscImageType::WUM,
254 => MionDiscImageType::WUMAD,
num => MionDiscImageType::Unknown(num),
}
}
}
impl From<MionDiscImageType> for u8 {
fn from(value: MionDiscImageType) -> u8 {
match value {
MionDiscImageType::WUM => 255,
MionDiscImageType::WUMAD => 254,
MionDiscImageType::Unknown(num) => num,
}
}
}