pub mod branch;
pub mod trap;
#[derive(Copy, Clone, Debug, Eq, PartialEq, Hash)]
pub enum Privilege {
User,
Supervisor,
Machine,
}
impl Default for Privilege {
fn default() -> Self {
Self::User
}
}
impl TryFrom<u8> for Privilege {
type Error = u8;
fn try_from(num: u8) -> Result<Self, Self::Error> {
match num {
0b00 => Ok(Self::User),
0b01 => Ok(Self::Supervisor),
0b11 => Ok(Self::Machine),
err => Err(err),
}
}
}