1use std::usize;
35
36pub const FG_BLACK: usize = 30;
37pub const FG_RED: usize = 31;
38pub const FG_GREEN: usize = 32;
39pub const FG_YELLOW: usize = 33;
40pub const FG_BLUE: usize = 34;
41pub const FG_MAGENTA: usize = 35;
42pub const FG_CYAN: usize = 36;
43pub const FG_WHITE: usize = 37;
44pub const DEFAULT: usize = 39;
45
46pub const BG_BLACK: usize = 40;
47pub const BG_RED: usize = 41;
48pub const BG_GREEN: usize = 42;
49pub const BG_YELLOW: usize = 43;
50pub const BG_BLUE: usize = 44;
51pub const BG_MAGENTA: usize = 45;
52pub const BG_CYAN: usize = 46;
53pub const BG_WHITE: usize = 47;
54pub const BG_DEFAULT: usize = 49;
55
56pub const FG_DARK_GRAY: usize = 90;
57pub const FG_LIGHT_RED: usize = 91;
58pub const FG_LIGHT_GREEN: usize = 92;
59pub const FG_LIGHT_YELLOW: usize = 93;
60pub const FG_LIGHT_BLUE: usize = 94;
61pub const FG_LIGHT_MAGENTA: usize = 95;
62pub const FG_LIGHT_CYAN: usize = 96;
63pub const FG_LIGHT_WHITE: usize = 97;
64
65pub const BG_DARK_GRAY: usize = 100;
66pub const BG_LIGHT_RED: usize = 101;
67pub const BG_LIGHT_GREEN: usize = 102;
68pub const BG_LIGH_YELLOW: usize = 103;
69pub const BG_LIGHT_BLUE: usize = 104;
70pub const BG_LIGHT_MAGENTA: usize = 105;
71pub const BG_LIGHT_CYAN: usize = 106;
72pub const BG_LIGHT_WHITE: usize = 107;
73
74pub fn darken(color: usize) -> usize {
76 color - 60
77}
78
79pub fn lighten(color: usize) -> usize {
81 color + 60
82}
83
84pub const C8_000: usize = 0;
85pub const C8_001: usize = 1;
86pub const C8_002: usize = 2;
87pub const C8_003: usize = 3;
88pub const C8_004: usize = 4;
89pub const C8_005: usize = 5;
90pub const C8_006: usize = 6;
91pub const C8_007: usize = 7;
92pub const C8_008: usize = 8;
93pub const C8_009: usize = 9;
94
95pub const C8_010: usize = 10;
96pub const C8_011: usize = 11;
97pub const C8_012: usize = 12;
98pub const C8_013: usize = 13;
99pub const C8_014: usize = 14;
100pub const C8_015: usize = 15;
101pub const C8_016: usize = 16;
102pub const C8_017: usize = 17;
103pub const C8_018: usize = 18;
104pub const C8_019: usize = 19;
105
106pub const C8_020: usize = 20;
107pub const C8_021: usize = 21;
108pub const C8_022: usize = 22;
109pub const C8_023: usize = 23;
110pub const C8_024: usize = 24;
111pub const C8_025: usize = 25;
112pub const C8_026: usize = 26;
113pub const C8_027: usize = 27;
114pub const C8_028: usize = 28;
115pub const C8_029: usize = 29;
116
117pub const C8_030: usize = 30;
118pub const C8_031: usize = 31;
119pub const C8_032: usize = 32;
120pub const C8_033: usize = 33;
121pub const C8_034: usize = 34;
122pub const C8_035: usize = 35;
123pub const C8_036: usize = 36;
124pub const C8_037: usize = 37;
125pub const C8_038: usize = 38;
126pub const C8_039: usize = 39;
127
128pub const C8_040: usize = 40;
129pub const C8_041: usize = 41;
130pub const C8_042: usize = 42;
131pub const C8_043: usize = 43;
132pub const C8_044: usize = 44;
133pub const C8_045: usize = 45;
134pub const C8_046: usize = 46;
135pub const C8_047: usize = 47;
136pub const C8_048: usize = 48;
137pub const C8_049: usize = 49;
138
139pub const C8_050: usize = 50;
140pub const C8_051: usize = 51;
141pub const C8_052: usize = 52;
142pub const C8_053: usize = 53;
143pub const C8_054: usize = 54;
144pub const C8_055: usize = 55;
145pub const C8_056: usize = 56;
146pub const C8_057: usize = 57;
147pub const C8_058: usize = 58;
148pub const C8_059: usize = 59;
149
150pub const C8_060: usize = 60;
151pub const C8_061: usize = 61;
152pub const C8_062: usize = 62;
153pub const C8_063: usize = 63;
154pub const C8_064: usize = 64;
155pub const C8_065: usize = 65;
156pub const C8_066: usize = 66;
157pub const C8_067: usize = 67;
158pub const C8_068: usize = 68;
159pub const C8_069: usize = 69;
160
161pub const C8_070: usize = 70;
162pub const C8_071: usize = 71;
163pub const C8_072: usize = 72;
164pub const C8_073: usize = 73;
165pub const C8_074: usize = 74;
166pub const C8_075: usize = 75;
167pub const C8_076: usize = 76;
168pub const C8_077: usize = 77;
169pub const C8_078: usize = 78;
170pub const C8_079: usize = 79;
171
172pub const C8_080: usize = 80;
173pub const C8_081: usize = 81;
174pub const C8_082: usize = 82;
175pub const C8_083: usize = 83;
176pub const C8_084: usize = 84;
177pub const C8_085: usize = 85;
178pub const C8_086: usize = 86;
179pub const C8_087: usize = 87;
180pub const C8_088: usize = 88;
181pub const C8_089: usize = 89;
182
183pub const C8_090: usize = 90;
184pub const C8_091: usize = 91;
185pub const C8_092: usize = 92;
186pub const C8_093: usize = 93;
187pub const C8_094: usize = 94;
188pub const C8_095: usize = 95;
189pub const C8_096: usize = 96;
190pub const C8_097: usize = 97;
191pub const C8_098: usize = 98;
192pub const C8_099: usize = 99;
193
194pub const C8_100: usize = 100;
195pub const C8_101: usize = 101;
196pub const C8_102: usize = 102;
197pub const C8_103: usize = 103;
198pub const C8_104: usize = 104;
199pub const C8_105: usize = 105;
200pub const C8_106: usize = 106;
201pub const C8_107: usize = 107;
202pub const C8_108: usize = 108;
203pub const C8_109: usize = 109;
204
205pub const C8_110: usize = 110;
206pub const C8_111: usize = 111;
207pub const C8_112: usize = 112;
208pub const C8_113: usize = 113;
209pub const C8_114: usize = 114;
210pub const C8_115: usize = 115;
211pub const C8_116: usize = 116;
212pub const C8_117: usize = 117;
213pub const C8_118: usize = 118;
214pub const C8_119: usize = 119;
215
216pub const C8_120: usize = 120;
217pub const C8_121: usize = 121;
218pub const C8_122: usize = 122;
219pub const C8_123: usize = 123;
220pub const C8_124: usize = 124;
221pub const C8_125: usize = 125;
222pub const C8_126: usize = 126;
223pub const C8_127: usize = 127;
224pub const C8_128: usize = 128;
225pub const C8_129: usize = 129;
226
227pub const C8_130: usize = 130;
228pub const C8_131: usize = 131;
229pub const C8_132: usize = 132;
230pub const C8_133: usize = 133;
231pub const C8_134: usize = 134;
232pub const C8_135: usize = 135;
233pub const C8_136: usize = 136;
234pub const C8_137: usize = 137;
235pub const C8_138: usize = 138;
236pub const C8_139: usize = 139;
237
238pub const C8_140: usize = 140;
239pub const C8_141: usize = 141;
240pub const C8_142: usize = 142;
241pub const C8_143: usize = 143;
242pub const C8_144: usize = 144;
243pub const C8_145: usize = 145;
244pub const C8_146: usize = 146;
245pub const C8_147: usize = 147;
246pub const C8_148: usize = 148;
247pub const C8_149: usize = 149;
248
249pub const C8_150: usize = 150;
250pub const C8_151: usize = 151;
251pub const C8_152: usize = 152;
252pub const C8_153: usize = 153;
253pub const C8_154: usize = 154;
254pub const C8_155: usize = 155;
255pub const C8_156: usize = 156;
256pub const C8_157: usize = 157;
257pub const C8_158: usize = 158;
258pub const C8_159: usize = 159;
259
260pub const C8_160: usize = 160;
261pub const C8_161: usize = 161;
262pub const C8_162: usize = 162;
263pub const C8_163: usize = 163;
264pub const C8_164: usize = 164;
265pub const C8_165: usize = 165;
266pub const C8_166: usize = 166;
267pub const C8_167: usize = 167;
268pub const C8_168: usize = 168;
269pub const C8_169: usize = 169;
270
271pub const C8_170: usize = 170;
272pub const C8_171: usize = 171;
273pub const C8_172: usize = 172;
274pub const C8_173: usize = 173;
275pub const C8_174: usize = 174;
276pub const C8_175: usize = 175;
277pub const C8_176: usize = 176;
278pub const C8_177: usize = 177;
279pub const C8_178: usize = 178;
280pub const C8_179: usize = 179;
281
282pub const C8_180: usize = 180;
283pub const C8_181: usize = 181;
284pub const C8_182: usize = 182;
285pub const C8_183: usize = 183;
286pub const C8_184: usize = 184;
287pub const C8_185: usize = 185;
288pub const C8_186: usize = 186;
289pub const C8_187: usize = 187;
290pub const C8_188: usize = 188;
291pub const C8_189: usize = 189;
292
293pub const C8_190: usize = 190;
294pub const C8_191: usize = 191;
295pub const C8_192: usize = 192;
296pub const C8_193: usize = 193;
297pub const C8_194: usize = 194;
298pub const C8_195: usize = 195;
299pub const C8_196: usize = 196;
300pub const C8_197: usize = 197;
301pub const C8_198: usize = 198;
302pub const C8_199: usize = 199;
303
304pub const C8_200: usize = 200;
305pub const C8_201: usize = 201;
306pub const C8_202: usize = 202;
307pub const C8_203: usize = 203;
308pub const C8_204: usize = 204;
309pub const C8_205: usize = 205;
310pub const C8_206: usize = 206;
311pub const C8_207: usize = 207;
312pub const C8_208: usize = 208;
313pub const C8_209: usize = 209;
314
315pub const C8_210: usize = 210;
316pub const C8_211: usize = 211;
317pub const C8_212: usize = 212;
318pub const C8_213: usize = 213;
319pub const C8_214: usize = 214;
320pub const C8_215: usize = 215;
321pub const C8_216: usize = 216;
322pub const C8_217: usize = 217;
323pub const C8_218: usize = 218;
324pub const C8_219: usize = 219;
325
326pub const C8_220: usize = 220;
327pub const C8_221: usize = 221;
328pub const C8_222: usize = 222;
329pub const C8_223: usize = 223;
330pub const C8_224: usize = 224;
331pub const C8_225: usize = 225;
332pub const C8_226: usize = 226;
333pub const C8_227: usize = 227;
334pub const C8_228: usize = 228;
335pub const C8_229: usize = 229;
336
337pub const C8_230: usize = 230;
338pub const C8_231: usize = 231;
339pub const C8_232: usize = 232;
340pub const C8_233: usize = 233;
341pub const C8_234: usize = 234;
342pub const C8_235: usize = 235;
343pub const C8_236: usize = 236;
344pub const C8_237: usize = 237;
345pub const C8_238: usize = 238;
346pub const C8_239: usize = 239;
347
348pub const C8_240: usize = 240;
349pub const C8_241: usize = 241;
350pub const C8_242: usize = 242;
351pub const C8_243: usize = 243;
352pub const C8_244: usize = 244;
353pub const C8_245: usize = 245;
354pub const C8_246: usize = 246;
355pub const C8_247: usize = 247;
356pub const C8_248: usize = 248;
357pub const C8_249: usize = 249;
358
359pub const C8_250: usize = 250;
360pub const C8_251: usize = 251;
361pub const C8_252: usize = 252;
362pub const C8_253: usize = 253;
363pub const C8_254: usize = 254;
364pub const C8_255: usize = 255;
365
366pub struct RGB(pub u8, pub u8, pub u8);