use crate::Elf64Half;
pub const ELF_MACHINE_NONE: Elf64Half = 0;
pub const ELF_MACHINE_X86_64: Elf64Half = 62;
#[derive(Debug, PartialEq, Eq, PartialOrd, Ord)]
pub enum ElfMachine {
None,
X86_64,
Any(Elf64Half),
}
impl std::fmt::Display for ElfMachine {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
let s = match self {
Self::None => "None".to_string(),
Self::X86_64 => "Advanced Micro Devices X86-64".to_string(),
Self::Any(v) => format!("Unknown!({})", v),
};
write!(f, "{}", s)
}
}
impl From<Elf64Half> for ElfMachine {
fn from(value: Elf64Half) -> Self {
match value {
ELF_MACHINE_NONE => Self::None,
ELF_MACHINE_X86_64 => Self::X86_64,
_ => Self::Any(value),
}
}
}
impl Default for ElfMachine {
fn default() -> Self {
Self::None
}
}