pub struct Interrupt { level: InterruptStatus } impl Interrupt { pub fn new() -> Self { Self { level: InterruptStatus::InterruptOff } } pub fn set_status(&mut self, newStatus: InterruptStatus) -> InterruptStatus { let old = self.level; self.level = newStatus; if newStatus == InterruptStatus::InterruptOn && old == InterruptStatus::InterruptOff { self.one_tick(1); } old } fn one_tick(&self, nb_cycle: i32) { todo!(); } pub fn get_status(&self) -> InterruptStatus { self.level } } #[derive(PartialEq, Clone, Copy)] pub enum InterruptStatus { InterruptOff, InterruptOn }