reznez 0.0.0

The high accuracy NES Emulator
Documentation
use crate::ppu::palette::rgb::Rgb;

#[derive(Clone, Copy, Debug)]
pub enum Rgbt {
    Transparent,
    Opaque(Rgb),
}

impl Rgbt {
    #[inline]
    pub fn opaque(red: u8, green: u8, blue: u8) -> Rgbt {
        Rgbt::Opaque(Rgb::new(red, green, blue))
    }

    pub fn is_transparent(self) -> bool {
        matches!(self, Rgbt::Transparent)
    }

    pub fn is_opaque(self) -> bool {
        matches!(self, Rgbt::Opaque(_))
    }

    pub fn to_rgb(self) -> Option<Rgb> {
        if let Rgbt::Opaque(rgb) = self {
            Some(rgb)
        } else {
            None
        }
    }
}