use super::color::PaletteColor; /// Represents a color palette pub trait Palette { /// Array of colors const COLORS: &'static [(u8, u8, u8)]; /// Returns a color from the palette fn pick(idx: usize) -> PaletteColor where Self: Sized, { PaletteColor::::pick(idx) } } /// The palette of 99% accessibility pub struct Palette99; /// The palette of 99.99% accessibility pub struct Palette9999; /// The palette of 100% accessibility pub struct Palette100; impl Palette for Palette99 { const COLORS: &'static [(u8, u8, u8)] = &[ (230, 25, 75), (60, 180, 75), (255, 225, 25), (0, 130, 200), (245, 130, 48), (145, 30, 180), (70, 240, 240), (240, 50, 230), (210, 245, 60), (250, 190, 190), (0, 128, 128), (230, 190, 255), (170, 110, 40), (255, 250, 200), (128, 0, 0), (170, 255, 195), (128, 128, 0), (255, 215, 180), (0, 0, 128), (128, 128, 128), (0, 0, 0), ]; } impl Palette for Palette9999 { const COLORS: &'static [(u8, u8, u8)] = &[ (255, 225, 25), (0, 130, 200), (245, 130, 48), (250, 190, 190), (230, 190, 255), (128, 0, 0), (0, 0, 128), (128, 128, 128), (0, 0, 0), ]; } impl Palette for Palette100 { const COLORS: &'static [(u8, u8, u8)] = &[(255, 225, 25), (0, 130, 200), (128, 128, 128), (0, 0, 0)]; }