1 use super::color::PaletteColor; 2 3 pub trait Palette { 4 const COLORS: &'static [(u8, u8, u8)]; pick(idx: usize) -> PaletteColor<Self> where Self: Sized,5 fn pick(idx: usize) -> PaletteColor<Self> 6 where 7 Self: Sized, 8 { 9 PaletteColor::<Self>::pick(idx) 10 } 11 } 12 13 /// The palette of 99% accessibility 14 pub struct Palette99; 15 /// The palette of 99.99% accessibility 16 pub struct Palette9999; 17 /// The palette of 100% accessibility 18 pub struct Palette100; 19 20 impl Palette for Palette99 { 21 const COLORS: &'static [(u8, u8, u8)] = &[ 22 (230, 25, 75), 23 (60, 180, 75), 24 (255, 225, 25), 25 (0, 130, 200), 26 (245, 130, 48), 27 (145, 30, 180), 28 (70, 240, 240), 29 (240, 50, 230), 30 (210, 245, 60), 31 (250, 190, 190), 32 (0, 128, 128), 33 (230, 190, 255), 34 (170, 110, 40), 35 (255, 250, 200), 36 (128, 0, 0), 37 (170, 255, 195), 38 (128, 128, 0), 39 (255, 215, 180), 40 (0, 0, 128), 41 (128, 128, 128), 42 (0, 0, 0), 43 ]; 44 } 45 46 impl Palette for Palette9999 { 47 const COLORS: &'static [(u8, u8, u8)] = &[ 48 (255, 225, 25), 49 (0, 130, 200), 50 (245, 130, 48), 51 (250, 190, 190), 52 (230, 190, 255), 53 (128, 0, 0), 54 (0, 0, 128), 55 (128, 128, 128), 56 (0, 0, 0), 57 ]; 58 } 59 60 impl Palette for Palette100 { 61 const COLORS: &'static [(u8, u8, u8)] = 62 &[(255, 225, 25), (0, 130, 200), (128, 128, 128), (0, 0, 0)]; 63 } 64