@@ -3,8 +3,8 @@ use image::Rgb;
33use std:: collections:: HashMap ;
44
55pub type Color = Rgb < u8 > ;
6- pub type Palette = [ Color ; 16 ] ;
7- pub type Palettes = HashMap < String , Palette > ;
6+ pub type Palette = [ Color ] ;
7+ pub type Palettes = HashMap < String , Vec < Color > > ;
88type RawPalette = HashMap < String , u32 > ;
99
1010/// The default color palette (SWEETIE-16).
@@ -64,15 +64,6 @@ static SLSO8: &Palette = &[
6464 Rgb ( [ 0xff , 0xaa , 0x5e ] ) , // #ffaa5e
6565 Rgb ( [ 0xff , 0xd4 , 0xa3 ] ) , // #ffd4a3
6666 Rgb ( [ 0xff , 0xec , 0xd6 ] ) , // #ffecd6
67- // unused
68- Rgb ( [ 0xff , 0xec , 0xd6 ] ) ,
69- Rgb ( [ 0xff , 0xec , 0xd6 ] ) ,
70- Rgb ( [ 0xff , 0xec , 0xd6 ] ) ,
71- Rgb ( [ 0xff , 0xec , 0xd6 ] ) ,
72- Rgb ( [ 0xff , 0xec , 0xd6 ] ) ,
73- Rgb ( [ 0xff , 0xec , 0xd6 ] ) ,
74- Rgb ( [ 0xff , 0xec , 0xd6 ] ) ,
75- Rgb ( [ 0xff , 0xec , 0xd6 ] ) ,
7667] ;
7768
7869/// The Kirokaze Gameboy color palette.
@@ -83,19 +74,6 @@ static GAMEBOY: &Palette = &[
8374 Rgb ( [ 0x46 , 0x87 , 0x8f ] ) , // #46878f: blue
8475 Rgb ( [ 0x94 , 0xe3 , 0x44 ] ) , // #94e344: green
8576 Rgb ( [ 0xe2 , 0xf3 , 0xe4 ] ) , // #e2f3e4: white
86- // unused
87- Rgb ( [ 0xe2 , 0xf3 , 0xe4 ] ) ,
88- Rgb ( [ 0xe2 , 0xf3 , 0xe4 ] ) ,
89- Rgb ( [ 0xe2 , 0xf3 , 0xe4 ] ) ,
90- Rgb ( [ 0xe2 , 0xf3 , 0xe4 ] ) ,
91- Rgb ( [ 0xe2 , 0xf3 , 0xe4 ] ) ,
92- Rgb ( [ 0xe2 , 0xf3 , 0xe4 ] ) ,
93- Rgb ( [ 0xe2 , 0xf3 , 0xe4 ] ) ,
94- Rgb ( [ 0xe2 , 0xf3 , 0xe4 ] ) ,
95- Rgb ( [ 0xe2 , 0xf3 , 0xe4 ] ) ,
96- Rgb ( [ 0xe2 , 0xf3 , 0xe4 ] ) ,
97- Rgb ( [ 0xe2 , 0xf3 , 0xe4 ] ) ,
98- Rgb ( [ 0xe2 , 0xf3 , 0xe4 ] ) ,
9977] ;
10078
10179/// WASM-4 color palette.
@@ -106,19 +84,6 @@ static WASM4: &Palette = &[
10684 Rgb ( [ 0x86 , 0xC0 , 0x6C ] ) , // #86C06C: light green
10785 Rgb ( [ 0x30 , 0x68 , 0x50 ] ) , // #306850: dark green
10886 Rgb ( [ 0x07 , 0x18 , 0x21 ] ) , // #071821: black
109- // unused
110- Rgb ( [ 0x07 , 0x18 , 0x21 ] ) ,
111- Rgb ( [ 0x07 , 0x18 , 0x21 ] ) ,
112- Rgb ( [ 0x07 , 0x18 , 0x21 ] ) ,
113- Rgb ( [ 0x07 , 0x18 , 0x21 ] ) ,
114- Rgb ( [ 0x07 , 0x18 , 0x21 ] ) ,
115- Rgb ( [ 0x07 , 0x18 , 0x21 ] ) ,
116- Rgb ( [ 0x07 , 0x18 , 0x21 ] ) ,
117- Rgb ( [ 0x07 , 0x18 , 0x21 ] ) ,
118- Rgb ( [ 0x07 , 0x18 , 0x21 ] ) ,
119- Rgb ( [ 0x07 , 0x18 , 0x21 ] ) ,
120- Rgb ( [ 0x07 , 0x18 , 0x21 ] ) ,
121- Rgb ( [ 0x07 , 0x18 , 0x21 ] ) ,
12287] ;
12388
12489pub fn parse_palettes ( raws : Option < & HashMap < String , RawPalette > > ) -> Result < Palettes > {
@@ -133,7 +98,7 @@ pub fn parse_palettes(raws: Option<&HashMap<String, RawPalette>>) -> Result<Pale
13398 Ok ( palettes)
13499}
135100
136- fn parse_palette ( raw : & RawPalette ) -> Result < Palette > {
101+ fn parse_palette ( raw : & RawPalette ) -> Result < Vec < Color > > {
137102 let len = raw. len ( ) ;
138103 if len > 16 {
139104 bail ! ( "too many colors" )
@@ -154,7 +119,6 @@ fn parse_palette(raw: &RawPalette) -> Result<Palette> {
154119 let color = parse_color ( * raw_color) ?;
155120 palette. push ( color) ;
156121 }
157- let palette: Palette = palette. try_into ( ) . unwrap ( ) ;
158122 Ok ( palette)
159123}
160124
@@ -206,31 +170,18 @@ mod tests {
206170 ps. insert ( "rgb" . to_string ( ) , p) ;
207171 let res = parse_palettes ( Some ( & ps) ) . unwrap ( ) ;
208172 assert_eq ! ( res. len( ) , 1 ) ;
209- let exp: Palette = [
173+ let exp: & Palette = & [
210174 Rgb ( [ 0xff , 0x00 , 0x00 ] ) ,
211175 Rgb ( [ 0x00 , 0xff , 0x00 ] ) ,
212176 Rgb ( [ 0x00 , 0x00 , 0xff ] ) ,
213- None ,
214- None ,
215- None ,
216- None ,
217- None ,
218- None ,
219- None ,
220- None ,
221- None ,
222- None ,
223- None ,
224- None ,
225- None ,
226177 ] ;
227178 assert_eq ! ( * res. get( "rgb" ) . unwrap( ) , exp) ;
228179 }
229180
230181 #[ test]
231182 fn test_get_palette ( ) {
232183 let mut p = Palettes :: new ( ) ;
233- p. insert ( "sup" . to_string ( ) , * SWEETIE16 ) ;
184+ p. insert ( "sup" . to_string ( ) , Vec :: from ( SWEETIE16 ) ) ;
234185 assert_eq ! ( get_palette( None , & p) . unwrap( ) , SWEETIE16 ) ;
235186 assert_eq ! ( get_palette( Some ( "sup" ) , & p) . unwrap( ) , SWEETIE16 ) ;
236187 assert_eq ! ( get_palette( Some ( "sweetie16" ) , & p) . unwrap( ) , SWEETIE16 ) ;
0 commit comments