@@ -88,37 +88,37 @@ fn main() -> Result<(), Box<dyn Error>> {
8888
8989 let flavor_tokens = [
9090 // Colors
91- make_flavor_colors_struct ( sample_flavor) ,
92- make_flavor_colors_all_impl ( sample_flavor) ,
91+ make_flavor_colors_struct_tokens ( sample_flavor) ,
92+ make_flavor_colors_all_impl_tokens ( sample_flavor) ,
9393 // ANSI Colors
94- make_flavor_ansi_colors_struct ( sample_flavor) ,
95- make_flavor_ansi_colors_all_impl ( sample_flavor) ,
94+ make_flavor_ansi_colors_struct_tokens ( sample_flavor) ,
95+ make_flavor_ansi_colors_all_impl_tokens ( sample_flavor) ,
9696 // ANSI Color Pairs
97- make_flavor_ansi_color_pairs_struct ( sample_flavor) ,
98- make_flavor_ansi_color_pairs_all_impl ( sample_flavor) ,
97+ make_flavor_ansi_color_pairs_struct_tokens ( sample_flavor) ,
98+ make_flavor_ansi_color_pairs_all_impl_tokens ( sample_flavor) ,
9999 ] ;
100100 let color_tokens = [
101- make_color_name_enum ( sample_flavor) ,
102- make_color_name_index_impl ( sample_flavor) ,
103- make_color_name_display_impl ( sample_flavor) ,
104- make_color_name_identifier_impl ( sample_flavor) ,
101+ make_color_name_enum_tokens ( sample_flavor) ,
102+ make_color_name_index_impl_tokens ( sample_flavor) ,
103+ make_color_name_display_impl_tokens ( sample_flavor) ,
104+ make_color_name_identifier_impl_tokens ( sample_flavor) ,
105105 make_color_name_fromstr_impl_tokens ( sample_flavor) ,
106106 ] ;
107107 let ansi_color_tokens = [
108- make_ansi_color_name_enum ( sample_flavor) ,
109- make_ansi_color_name_index_impl ( sample_flavor) ,
110- make_ansi_color_name_display_impl ( sample_flavor) ,
111- make_ansi_color_name_identifier_impl ( sample_flavor) ,
108+ make_ansi_color_name_enum_tokens ( sample_flavor) ,
109+ make_ansi_color_name_index_impl_tokens ( sample_flavor) ,
110+ make_ansi_color_name_display_impl_tokens ( sample_flavor) ,
111+ make_ansi_color_name_identifier_impl_tokens ( sample_flavor) ,
112112 make_ansi_color_name_fromstr_impl_tokens ( sample_flavor) ,
113113 ] ;
114114 let ansi_color_pair_tokens = [
115- make_ansi_color_pair_name_enum ( sample_flavor) ,
116- make_ansi_color_pair_name_index_impl ( sample_flavor) ,
117- make_ansi_color_pair_name_display_impl ( sample_flavor) ,
118- make_ansi_color_pair_name_identifier_impl ( sample_flavor) ,
115+ make_ansi_color_pair_name_enum_tokens ( sample_flavor) ,
116+ make_ansi_color_pair_name_index_impl_tokens ( sample_flavor) ,
117+ make_ansi_color_pair_name_display_impl_tokens ( sample_flavor) ,
118+ make_ansi_color_pair_name_identifier_impl_tokens ( sample_flavor) ,
119119 make_ansi_color_pair_name_fromstr_impl_tokens ( sample_flavor) ,
120120 ] ;
121- let palette_tokens = [ make_palette_const ( & palette) ] ;
121+ let palette_tokens = [ make_palette_const_tokens ( & palette) ] ;
122122
123123 let ast = syn:: parse2 (
124124 [
@@ -183,11 +183,21 @@ fn colors_in_order(flavor: &Flavor) -> std::vec::IntoIter<(&String, &Color)> {
183183 . sorted_by ( |( _, a) , ( _, b) | a. order . cmp ( & b. order ) )
184184}
185185
186- fn ansi_color_pairs_in_order ( flavor : & Flavor ) -> std:: vec:: IntoIter < ( & String , & AnsiColorPair ) > {
186+ fn ansi_color_pairs_in_order (
187+ flavor : & Flavor ,
188+ ) -> std:: vec:: IntoIter < ( & String , & AnsiColorPair , String , String ) > {
187189 flavor
188190 . ansi_colors
189191 . iter ( )
190- . sorted_by ( |( _, a) , ( _, b) | a. order . cmp ( & b. order ) )
192+ . map ( |( ident, pair) | {
193+ (
194+ ident,
195+ pair,
196+ pair. normal . name . to_lowercase ( ) . replace ( ' ' , "_" ) ,
197+ pair. bright . name . to_lowercase ( ) . replace ( ' ' , "_" ) ,
198+ )
199+ } )
200+ . sorted_by ( |( _, a, _, _) , ( _, b, _, _) | a. order . cmp ( & b. order ) )
191201}
192202
193203fn ansi_colors_in_order ( flavor : & Flavor ) -> std:: vec:: IntoIter < ( String , & AnsiColor ) > {
@@ -199,7 +209,7 @@ fn ansi_colors_in_order(flavor: &Flavor) -> std::vec::IntoIter<(String, &AnsiCol
199209 . sorted_by ( |( _, a) , ( _, b) | a. code . cmp ( & b. code ) )
200210}
201211
202- fn make_flavor_colors_struct ( sample_flavor : & Flavor ) -> TokenStream {
212+ fn make_flavor_colors_struct_tokens ( sample_flavor : & Flavor ) -> TokenStream {
203213 let colors = colors_in_order ( sample_flavor) . map ( |( k, _) | {
204214 let ident = format_ident ! ( "{k}" ) ;
205215 let color_img = format ! ( " {}" , color_palette_circles( k) ) ;
@@ -219,7 +229,7 @@ fn make_flavor_colors_struct(sample_flavor: &Flavor) -> TokenStream {
219229 }
220230}
221231
222- fn make_flavor_ansi_colors_struct ( sample_flavor : & Flavor ) -> TokenStream {
232+ fn make_flavor_ansi_colors_struct_tokens ( sample_flavor : & Flavor ) -> TokenStream {
223233 let colors = ansi_colors_in_order ( sample_flavor) . map ( |( k, _) | {
224234 let ident = format_ident ! ( "{k}" ) ;
225235 let color_img = format ! ( " {}" , ansi_color_palette_circles( & k) ) ;
@@ -255,8 +265,8 @@ fn make_flavor_ansi_colors_struct(sample_flavor: &Flavor) -> TokenStream {
255265 }
256266}
257267
258- fn make_flavor_ansi_color_pairs_struct ( sample_flavor : & Flavor ) -> TokenStream {
259- let color_pairs = ansi_color_pairs_in_order ( sample_flavor) . map ( |( k, _ ) | {
268+ fn make_flavor_ansi_color_pairs_struct_tokens ( sample_flavor : & Flavor ) -> TokenStream {
269+ let color_pairs = ansi_color_pairs_in_order ( sample_flavor) . map ( |( k, .. ) | {
260270 let ident = format_ident ! ( "{k}" ) ;
261271 let doc = format ! ( "The normal and bright {k} ANSI color pair." ) ;
262272 quote ! {
@@ -288,7 +298,7 @@ fn make_flavor_ansi_color_pairs_struct(sample_flavor: &Flavor) -> TokenStream {
288298 }
289299}
290300
291- fn make_flavor_colors_all_impl ( sample_flavor : & Flavor ) -> TokenStream {
301+ fn make_flavor_colors_all_impl_tokens ( sample_flavor : & Flavor ) -> TokenStream {
292302 let items = colors_in_order ( sample_flavor) . map ( |( identifier, _) | {
293303 let ident = format_ident ! ( "{identifier}" ) ;
294304 quote ! { & self . #ident }
@@ -306,13 +316,21 @@ fn make_flavor_colors_all_impl(sample_flavor: &Flavor) -> TokenStream {
306316 }
307317}
308318
309- fn make_flavor_ansi_colors_all_impl ( sample_flavor : & Flavor ) -> TokenStream {
319+ fn make_flavor_ansi_colors_all_impl_tokens ( sample_flavor : & Flavor ) -> TokenStream {
310320 let ansi_colors = ansi_colors_in_order ( sample_flavor) . map ( |( identifier, _) | {
311321 let ident = format_ident ! ( "{identifier}" ) ;
312322 quote ! { & self . #ident }
313323 } ) ;
314- let ansi_color_pairs = ansi_color_pairs_in_order ( sample_flavor)
315- . map ( |( identifier, color_pair) | make_ansi_color_pair_entry ( identifier, color_pair) ) ;
324+ let ansi_color_pairs = ansi_color_pairs_in_order ( sample_flavor) . map (
325+ |( identifier, color_pair, normal_identifier, bright_identifier) | {
326+ make_ansi_color_pair_entry (
327+ identifier,
328+ color_pair,
329+ & normal_identifier,
330+ & bright_identifier,
331+ )
332+ } ,
333+ ) ;
316334 quote ! {
317335 impl FlavorAnsiColors {
318336 /// Get an array of the ANSI colors in the flavor.
@@ -335,8 +353,8 @@ fn make_flavor_ansi_colors_all_impl(sample_flavor: &Flavor) -> TokenStream {
335353 }
336354}
337355
338- fn make_flavor_ansi_color_pairs_all_impl ( sample_flavor : & Flavor ) -> TokenStream {
339- let items = ansi_color_pairs_in_order ( sample_flavor) . map ( |( identifier, _ ) | {
356+ fn make_flavor_ansi_color_pairs_all_impl_tokens ( sample_flavor : & Flavor ) -> TokenStream {
357+ let items = ansi_color_pairs_in_order ( sample_flavor) . map ( |( identifier, .. ) | {
340358 let ident = format_ident ! ( "{identifier}" ) ;
341359 quote ! { & self . #ident }
342360 } ) ;
@@ -353,7 +371,7 @@ fn make_flavor_ansi_color_pairs_all_impl(sample_flavor: &Flavor) -> TokenStream
353371 }
354372}
355373
356- fn make_color_name_enum ( sample_flavor : & Flavor ) -> TokenStream {
374+ fn make_color_name_enum_tokens ( sample_flavor : & Flavor ) -> TokenStream {
357375 let variants = colors_in_order ( sample_flavor) . map ( |( name, _) | {
358376 let ident = format_ident ! ( "{}" , titlecase( name) ) ;
359377 let circles = format ! ( " {}" , color_palette_circles( name) ) ;
@@ -372,7 +390,7 @@ fn make_color_name_enum(sample_flavor: &Flavor) -> TokenStream {
372390 }
373391}
374392
375- fn make_ansi_color_name_enum ( sample_flavor : & Flavor ) -> TokenStream {
393+ fn make_ansi_color_name_enum_tokens ( sample_flavor : & Flavor ) -> TokenStream {
376394 let variants = ansi_colors_in_order ( sample_flavor) . map ( |( identifier, color) | {
377395 let name = remove_whitespace ( & color. name ) ;
378396 let ident = format_ident ! ( "{name}" ) ;
@@ -392,8 +410,8 @@ fn make_ansi_color_name_enum(sample_flavor: &Flavor) -> TokenStream {
392410 }
393411}
394412
395- fn make_ansi_color_pair_name_enum ( sample_flavor : & Flavor ) -> TokenStream {
396- let variants = ansi_color_pairs_in_order ( sample_flavor) . map ( |( name, _ ) | {
413+ fn make_ansi_color_pair_name_enum_tokens ( sample_flavor : & Flavor ) -> TokenStream {
414+ let variants = ansi_color_pairs_in_order ( sample_flavor) . map ( |( name, .. ) | {
397415 let ident = format_ident ! ( "{}" , titlecase( name) ) ;
398416 let circles = format ! ( " {}" , ansi_color_palette_circles( name) ) ;
399417 quote ! {
@@ -411,7 +429,7 @@ fn make_ansi_color_pair_name_enum(sample_flavor: &Flavor) -> TokenStream {
411429 }
412430}
413431
414- fn make_color_name_index_impl ( sample_flavor : & Flavor ) -> TokenStream {
432+ fn make_color_name_index_impl_tokens ( sample_flavor : & Flavor ) -> TokenStream {
415433 let first = colors_in_order ( sample_flavor) . map ( |( identifier, _) | {
416434 let variant = format_ident ! ( "{}" , titlecase( identifier) ) ;
417435 let ident = format_ident ! ( "{}" , identifier) ;
@@ -446,7 +464,7 @@ fn make_color_name_index_impl(sample_flavor: &Flavor) -> TokenStream {
446464 }
447465}
448466
449- fn make_ansi_color_name_index_impl ( sample_flavor : & Flavor ) -> TokenStream {
467+ fn make_ansi_color_name_index_impl_tokens ( sample_flavor : & Flavor ) -> TokenStream {
450468 let first = ansi_colors_in_order ( sample_flavor) . map ( |( identifier, color) | {
451469 let variant = format_ident ! ( "{}" , remove_whitespace( & color. name) ) ;
452470 let ident = format_ident ! ( "{}" , identifier) ;
@@ -481,8 +499,8 @@ fn make_ansi_color_name_index_impl(sample_flavor: &Flavor) -> TokenStream {
481499 }
482500}
483501
484- fn make_ansi_color_pair_name_index_impl ( sample_flavor : & Flavor ) -> TokenStream {
485- let first = ansi_color_pairs_in_order ( sample_flavor) . map ( |( identifier, _ ) | {
502+ fn make_ansi_color_pair_name_index_impl_tokens ( sample_flavor : & Flavor ) -> TokenStream {
503+ let first = ansi_color_pairs_in_order ( sample_flavor) . map ( |( identifier, .. ) | {
486504 let variant = format_ident ! ( "{}" , titlecase( identifier) ) ;
487505 let ident = format_ident ! ( "{}" , identifier) ;
488506 quote ! {
@@ -516,7 +534,7 @@ fn make_ansi_color_pair_name_index_impl(sample_flavor: &Flavor) -> TokenStream {
516534 }
517535}
518536
519- fn make_color_name_display_impl ( sample_flavor : & Flavor ) -> TokenStream {
537+ fn make_color_name_display_impl_tokens ( sample_flavor : & Flavor ) -> TokenStream {
520538 let match_arms = colors_in_order ( sample_flavor) . map ( |( identifier, color) | {
521539 let variant = format_ident ! ( "{}" , titlecase( identifier) ) ;
522540 let name = & color. name ;
@@ -535,7 +553,7 @@ fn make_color_name_display_impl(sample_flavor: &Flavor) -> TokenStream {
535553 }
536554}
537555
538- fn make_ansi_color_name_display_impl ( sample_flavor : & Flavor ) -> TokenStream {
556+ fn make_ansi_color_name_display_impl_tokens ( sample_flavor : & Flavor ) -> TokenStream {
539557 let match_arms = ansi_colors_in_order ( sample_flavor) . map ( |( _, color) | {
540558 let name = & color. name ;
541559 let variant = format_ident ! ( "{}" , remove_whitespace( name) ) ;
@@ -554,8 +572,8 @@ fn make_ansi_color_name_display_impl(sample_flavor: &Flavor) -> TokenStream {
554572 }
555573}
556574
557- fn make_ansi_color_pair_name_display_impl ( sample_flavor : & Flavor ) -> TokenStream {
558- let match_arms = ansi_color_pairs_in_order ( sample_flavor) . map ( |( identifier, _ ) | {
575+ fn make_ansi_color_pair_name_display_impl_tokens ( sample_flavor : & Flavor ) -> TokenStream {
576+ let match_arms = ansi_color_pairs_in_order ( sample_flavor) . map ( |( identifier, .. ) | {
559577 let name = titlecase ( identifier) ;
560578 let variant = format_ident ! ( "{name}" ) ;
561579 quote ! {
@@ -573,7 +591,7 @@ fn make_ansi_color_pair_name_display_impl(sample_flavor: &Flavor) -> TokenStream
573591 }
574592}
575593
576- fn make_color_name_identifier_impl ( sample_flavor : & Flavor ) -> TokenStream {
594+ fn make_color_name_identifier_impl_tokens ( sample_flavor : & Flavor ) -> TokenStream {
577595 let match_arms = colors_in_order ( sample_flavor) . map ( |( identifier, _) | {
578596 let variant = format_ident ! ( "{}" , titlecase( identifier) ) ;
579597 quote ! {
@@ -603,7 +621,7 @@ fn make_color_name_identifier_impl(sample_flavor: &Flavor) -> TokenStream {
603621 }
604622}
605623
606- fn make_ansi_color_name_identifier_impl ( sample_flavor : & Flavor ) -> TokenStream {
624+ fn make_ansi_color_name_identifier_impl_tokens ( sample_flavor : & Flavor ) -> TokenStream {
607625 let match_arms = ansi_colors_in_order ( sample_flavor) . map ( |( identifier, color) | {
608626 let variant = format_ident ! ( "{}" , remove_whitespace( & color. name) ) ;
609627 quote ! {
@@ -633,8 +651,8 @@ fn make_ansi_color_name_identifier_impl(sample_flavor: &Flavor) -> TokenStream {
633651 }
634652}
635653
636- fn make_ansi_color_pair_name_identifier_impl ( sample_flavor : & Flavor ) -> TokenStream {
637- let match_arms = ansi_color_pairs_in_order ( sample_flavor) . map ( |( identifier, _ ) | {
654+ fn make_ansi_color_pair_name_identifier_impl_tokens ( sample_flavor : & Flavor ) -> TokenStream {
655+ let match_arms = ansi_color_pairs_in_order ( sample_flavor) . map ( |( identifier, .. ) | {
638656 let variant = format_ident ! ( "{}" , titlecase( identifier) ) ;
639657 quote ! {
640658 Self :: #variant => #identifier
@@ -715,7 +733,7 @@ fn make_ansi_color_name_fromstr_impl_tokens(sample_flavor: &Flavor) -> TokenStre
715733
716734fn make_ansi_color_pair_name_fromstr_impl_tokens ( sample_flavor : & Flavor ) -> TokenStream {
717735 let match_arms = ansi_color_pairs_in_order ( sample_flavor)
718- . map ( |( identifier, _ ) | {
736+ . map ( |( identifier, .. ) | {
719737 let variant = format_ident ! ( "{}" , titlecase( identifier) ) ;
720738 quote ! {
721739 #identifier => Ok ( Self :: #variant)
@@ -736,7 +754,7 @@ fn make_ansi_color_pair_name_fromstr_impl_tokens(sample_flavor: &Flavor) -> Toke
736754 }
737755}
738756
739- fn make_palette_const ( palette : & Palette ) -> TokenStream {
757+ fn make_palette_const_tokens ( palette : & Palette ) -> TokenStream {
740758 let flavors =
741759 flavors_in_order ( palette) . map ( |( identifier, flavor) | make_flavor_entry ( identifier, flavor) ) ;
742760 let tokens = quote ! {
@@ -825,74 +843,24 @@ fn make_ansi_color_entry(identifier: &str, ansi_color: &AnsiColor) -> TokenStrea
825843 }
826844}
827845
828- fn make_ansi_color_pair_entry ( identifier : & str , ansi_color_pair : & AnsiColorPair ) -> TokenStream {
829- let ident = format_ident ! ( "{}" , identifier) ;
830- let AnsiColorPair {
831- name,
832- order,
833- normal :
834- AnsiColor {
835- name : normal_name,
836- code : normal_code,
837- rgb :
838- Rgb {
839- r : normal_r,
840- g : normal_g,
841- b : normal_b,
842- } ,
843- hsl :
844- Hsl {
845- h : normal_h,
846- s : normal_s,
847- l : normal_l,
848- } ,
849- } ,
850- bright :
851- AnsiColor {
852- name : bright_name,
853- code : bright_code,
854- rgb :
855- Rgb {
856- r : bright_r,
857- g : bright_g,
858- b : bright_b,
859- } ,
860- hsl :
861- Hsl {
862- h : bright_h,
863- s : bright_s,
864- l : bright_l,
865- } ,
866- ..
867- } ,
868- } = ansi_color_pair;
869-
870- let ansi_name_variant = format_ident ! ( "{}" , name) ;
871- let normal_name_variant = format_ident ! ( "{}" , normal_name) ;
872- let bright_name_variant = format_ident ! ( "{}" , remove_whitespace( bright_name) ) ;
873- let normal_rgb = quote ! { Rgb { r: #normal_r, g: #normal_g, b: #normal_b } } ;
874- let normal_hsl = quote ! { Hsl { h: #normal_h, s: #normal_s, l: #normal_l } } ;
875- let bright_rgb = quote ! { Rgb { r: #bright_r, g: #bright_g, b: #bright_b } } ;
876- let bright_hsl = quote ! { Hsl { h: #bright_h, s: #bright_s, l: #bright_l } } ;
846+ fn make_ansi_color_pair_entry (
847+ identifier : & str ,
848+ ansi_color_pair : & AnsiColorPair ,
849+ normal_identifier : & str ,
850+ bright_identifier : & str ,
851+ ) -> TokenStream {
852+ let identifier = format_ident ! ( "{}" , identifier) ;
853+ let name_identifier = format_ident ! ( "{}" , ansi_color_pair. name) ;
854+ let order = ansi_color_pair. order ;
855+ let normal_identifier = format_ident ! ( "{}" , normal_identifier) ;
856+ let bright_identifier = format_ident ! ( "{}" , bright_identifier) ;
877857
878858 quote ! {
879- #ident : AnsiColorPair {
880- name: AnsiColorPairName :: #ansi_name_variant ,
859+ #identifier : AnsiColorPair {
860+ name: AnsiColorPairName :: #name_identifier ,
881861 order: #order,
882- normal: AnsiColor {
883- name: AnsiColorName :: #normal_name_variant,
884- hex: Hex ( #normal_rgb) ,
885- rgb: #normal_rgb,
886- hsl: #normal_hsl,
887- code: #normal_code,
888- } ,
889- bright: AnsiColor {
890- name: AnsiColorName :: #bright_name_variant,
891- hex: Hex ( #bright_rgb) ,
892- rgb: #bright_rgb,
893- hsl: #bright_hsl,
894- code: #bright_code,
895- }
862+ normal: self . #normal_identifier,
863+ bright: self . #bright_identifier,
896864 }
897865 }
898866}
0 commit comments