1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
macro_rules! build_const_color {
	( 	
		$name_mode:tt : $name_mode_str:expr;
		
		$(  $const_name:tt : $t:tt = $value:expr )+ 
	) => {
		
		build_const_color!(
			$name_mode : $name_mode_str;
			
			$(  
				$const_name : $t = $value , stringify!($const_name), stringify!($t), stringify!($value) ;
			)+ 
		);
		
	};
	
	( 	
		$name_mode:tt : $name_mode_str:expr;
		

		$(  $const_name:tt : $t:tt = $value:expr , $c_str:expr, $t_str:expr, $v_str:expr ; )+ 
	) => {
		
		#[doc = $name_mode_str]
		pub mod $name_mode {
			$(
				#[doc = "Color Const `"]
				#[doc = $c_str]
				#[doc = "` `"]
				#[doc = $v_str]
				#[doc = "` `"]
				pub const $const_name: &$t = $value;
			)+
		}
		
	};
}



build_const_color!(
	default: "30-37: BLACK-WHITE; 90-97: BRIGHT_BLACK-BRIGHT_WHITE";
	
	BLACK: str 	= "30"
	RED: str 	= "31"
	GREEN: str 	= "32"
	YELLOW: str 	= "33"
	BLUE: str 	= "34"
	MAGENTA: str 	= "35"
	CYAN: str	= "36"
	WHITE: str 	= "37"
	
	BRIGHT_BLACK: str 	= "90"
	BRIGHT_RED: str 	= "91"
	BRIGHT_GREEN: str 	= "92"
	BRIGHT_YELLOW: str 	= "93"
	BRIGHT_BLUE: str 	= "94"
	BRIGHT_MAGENTA: str 	= "95"
	BRIGHT_CYAN: str	= "96"
	BRIGHT_WHITE: str 	= "97"
);


build_const_color!(
	b_default: "30-37: BLACK-WHITE; 90-97: BRIGHT_BLACK-BRIGHT_WHITE";
	
	BLACK: [u8] 			= b"30"
	RED: [u8] 			= b"31"
	GREEN: [u8] 			= b"32"
	YELLOW: [u8] 			= b"33"
	BLUE: [u8] 			= b"34"
	MAGENTA: [u8] 		= b"35"
	CYAN: [u8]			= b"36"
	WHITE: [u8] 			= b"37"
	
	BRIGHT_BLACK: [u8] 		= b"90"
	BRIGHT_RED: [u8] 		= b"91"
	BRIGHT_GREEN: [u8] 		= b"92"
	BRIGHT_YELLOW: [u8] 		= b"93"
	BRIGHT_BLUE: [u8] 		= b"94"
	BRIGHT_MAGENTA: [u8] 	= b"95"
	BRIGHT_CYAN: [u8]		= b"96"
	BRIGHT_WHITE: [u8] 		= b"97"
);