gboxide 0.2.2

A GameBoy Emulator written in Rust
Documentation
#[derive(FromPrimitive)]
pub enum Interrupt {
    VBlank = 0,
    LCDC = 1,
    Timer = 2,
    SerialIOComplete = 3,
    Joypad = 4,
}

pub struct InterruptHandler {
    flag: u8,
    enable: u8,
}

impl InterruptHandler {
    pub fn new() -> InterruptHandler {
        InterruptHandler {
            flag: 0x00,
            enable: 0x00,
        }
    }

    pub fn get_flag(&self) -> u8 {
        self.flag
    }
    pub fn set_flag(&mut self, value: u8) {
        self.flag = value;
    }

    pub fn get_enable(&self) -> u8 {
        self.enable
    }
    pub fn set_enable(&mut self, value: u8) {
        self.enable = value;
    }

    pub fn get_enabled_flags(&self) -> u8 {
        self.flag & self.enable
    }

    pub fn set_interrupt(&mut self, interrupt: Interrupt) {
        self.flag |= 1 << interrupt as u8;
    }
}