1use crate::text::{
2 ASCII_CENT, ASCII_CHECK, ASCII_CURRENCY, ASCII_DEGREE, ASCII_ELLIPSIS, ASCII_EURO, ASCII_POUND,
3 ASCII_YEN,
4};
5
6pub const CHAR_WIDTH: usize = 4;
7pub const CHAR_HEIGHT: usize = 5;
8
9pub const fn get_px_ascii(code: u8) -> &'static [bool] {
10 match code {
11 33 => &EXCLAIM,
12 34 => &DOUBLE_QUOTE,
13 35 => &HASH,
14 36 => &DOLLAR,
15 37 => &PERCENT,
16 38 => &ERSAND,
17 39 => "E,
18 40 => &PAREN_L,
19 41 => &PAREN_R,
20 42 => &ASTERISK,
21 43 => &PLUS,
22 44 => &COMMA,
23 45 => &MINUS,
24 46 => &PERIOD,
25 47 => &SLASH,
26 48 => &ZERO,
27 49 => &ONE,
28 50 => &TWO,
29 51 => &THREE,
30 52 => &FOUR,
31 53 => &FIVE,
32 54 => &SIX,
33 55 => &SEVEN,
34 56 => &EIGHT,
35 57 => &NINE,
36 58 => &COLON,
37 59 => &SEMICOLON,
38 60 => &ANGLE_L,
39 61 => &EQUALS,
40 62 => &ANGLE_R,
41 63 => &QUESTION,
42 64 => &AT,
43 65 => &A,
44 66 => &B,
45 67 => &C,
46 68 => &D,
47 69 => &E,
48 70 => &F,
49 71 => &G,
50 72 => &H,
51 73 => &I,
52 74 => &J,
53 75 => &K,
54 76 => &L,
55 77 => &M,
56 78 => &N,
57 79 => &O,
58 80 => &P,
59 81 => &Q,
60 82 => &R,
61 83 => &S,
62 84 => &T,
63 85 => &U,
64 86 => &V,
65 87 => &W,
66 88 => &X,
67 89 => &Y,
68 90 => &Z,
69 91 => &SQUARE_L,
70 92 => &BACKSLASH,
71 93 => &SQUARE_R,
72 95 => &UNDERSCORE,
73 94 => &POWER,
74 96 => &BACKTICK,
75 97 => &LOWER_A,
76 98 => &LOWER_B,
77 99 => &LOWER_C,
78 100 => &LOWER_D,
79 101 => &LOWER_E,
80 102 => &LOWER_F,
81 103 => &LOWER_G,
82 104 => &LOWER_H,
83 105 => &LOWER_I,
84 106 => &LOWER_J,
85 107 => &LOWER_K,
86 108 => &LOWER_L,
87 109 => &LOWER_M,
88 110 => &LOWER_N,
89 111 => &LOWER_O,
90 112 => &LOWER_P,
91 113 => &LOWER_Q,
92 114 => &LOWER_R,
93 115 => &LOWER_S,
94 116 => &LOWER_T,
95 117 => &LOWER_U,
96 118 => &LOWER_V,
97 119 => &LOWER_W,
98 120 => &LOWER_X,
99 121 => &LOWER_Y,
100 122 => &LOWER_Z,
101 123 => &CURLY_L,
102 124 => &PIPE,
103 125 => &CURLY_R,
104 126 => &TILDE,
105 ASCII_EURO => &EURO,
106 ASCII_ELLIPSIS => &ELLIPSIS,
107 ASCII_DEGREE => &DEGREE,
108 ASCII_POUND => &POUND,
109 ASCII_CURRENCY => &CURRENCY,
110 ASCII_YEN => &YEN,
111 ASCII_CENT => &CENT,
112 ASCII_CHECK => &CHECK,
113 _ => &UNKNOWN,
114 }
115}
116
117pub const LETTER_PX_COUNT: usize = CHAR_WIDTH * CHAR_HEIGHT;
118
119const AT: [bool; LETTER_PX_COUNT] = [
120 true, true, true, true, true, false, false, true, true, false, true, true, true, false, false,
121 false, true, true, true, true,
122];
123const A: [bool; LETTER_PX_COUNT] = [
124 false, true, true, false, true, false, false, true, true, true, true, true, true, false, false,
125 true, true, false, false, true,
126];
127const B: [bool; LETTER_PX_COUNT] = [
128 true, true, true, false, true, false, false, true, true, true, true, false, true, false, false,
129 true, true, true, true, false,
130];
131const C: [bool; LETTER_PX_COUNT] = [
132 false, true, true, false, true, false, false, true, true, false, false, false, true, false,
133 false, true, false, true, true, false,
134];
135const D: [bool; LETTER_PX_COUNT] = [
136 true, true, true, false, true, false, false, true, true, false, false, true, true, false,
137 false, true, true, true, true, false,
138];
139const E: [bool; LETTER_PX_COUNT] = [
140 true, true, true, true, true, false, false, false, true, true, true, false, true, false, false,
141 false, true, true, true, true,
142];
143const F: [bool; LETTER_PX_COUNT] = [
144 true, true, true, true, true, false, false, false, true, true, true, false, true, false, false,
145 false, true, false, false, false,
146];
147const G: [bool; LETTER_PX_COUNT] = [
148 false, true, true, false, true, false, false, false, true, false, true, true, true, false,
149 false, true, false, true, true, false,
150];
151const H: [bool; LETTER_PX_COUNT] = [
152 true, false, false, true, true, false, false, true, true, true, true, true, true, false, false,
153 true, true, false, false, true,
154];
155const I: [bool; LETTER_PX_COUNT] = [
156 false, false, true, false, false, false, true, false, false, false, true, false, false, false,
157 true, false, false, false, true, false,
158];
159const J: [bool; LETTER_PX_COUNT] = [
160 false, false, false, true, false, false, false, true, false, false, false, true, true, false,
161 false, true, false, true, true, false,
162];
163const K: [bool; LETTER_PX_COUNT] = [
164 true, false, false, true, true, false, true, false, true, true, false, false, true, false,
165 true, false, true, false, false, true,
166];
167const L: [bool; LETTER_PX_COUNT] = [
168 true, false, false, false, true, false, false, false, true, false, false, false, true, false,
169 false, false, true, true, true, true,
170];
171const M: [bool; LETTER_PX_COUNT] = [
172 true, false, false, true, true, true, true, true, true, false, false, true, true, false, false,
173 true, true, false, false, true,
174];
175const N: [bool; LETTER_PX_COUNT] = [
176 true, false, false, true, true, true, false, true, true, false, true, true, true, false, false,
177 true, true, false, false, true,
178];
179const O: [bool; LETTER_PX_COUNT] = [
180 false, true, true, false, true, false, false, true, true, false, false, true, true, false,
181 false, true, false, true, true, false,
182];
183const P: [bool; LETTER_PX_COUNT] = [
184 true, true, true, false, true, false, false, true, true, true, true, false, true, false, false,
185 false, true, false, false, false,
186];
187const R: [bool; LETTER_PX_COUNT] = [
188 true, true, true, false, true, false, false, true, true, true, true, false, true, false, true,
189 false, true, false, false, true,
190];
191const S: [bool; LETTER_PX_COUNT] = [
192 false, true, true, true, true, false, false, false, false, true, true, false, false, false,
193 false, true, true, true, true, false,
194];
195const T: [bool; LETTER_PX_COUNT] = [
196 true, true, true, true, false, false, true, false, false, false, true, false, false, false,
197 true, false, false, false, true, false,
198];
199const U: [bool; LETTER_PX_COUNT] = [
200 true, false, false, true, true, false, false, true, true, false, false, true, true, false,
201 false, true, false, true, true, false,
202];
203const Q: [bool; LETTER_PX_COUNT] = [
204 false, true, true, false, true, false, false, true, true, false, false, true, true, false,
205 true, true, false, true, true, true,
206];
207const W: [bool; LETTER_PX_COUNT] = [
208 true, false, false, true, true, false, false, true, true, false, false, true, true, true, true,
209 true, true, false, false, true,
210];
211const V: [bool; LETTER_PX_COUNT] = [
212 true, false, true, false, true, false, true, false, true, false, true, false, true, false,
213 true, false, false, true, false, false,
214];
215const X: [bool; LETTER_PX_COUNT] = [
216 true, false, true, false, true, false, true, false, false, true, false, false, true, false,
217 true, false, true, false, true, false,
218];
219const Y: [bool; LETTER_PX_COUNT] = [
220 true, false, true, false, true, false, true, false, false, true, false, false, false, true,
221 false, false, false, true, false, false,
222];
223const Z: [bool; LETTER_PX_COUNT] = [
224 true, true, true, true, false, false, false, true, false, true, true, false, true, false,
225 false, false, true, true, true, true,
226];
227const AMPERSAND: [bool; LETTER_PX_COUNT] = [
228 false, true, true, false, true, false, false, false, false, true, false, true, true, false,
229 true, false, false, true, false, true,
230];
231const EXCLAIM: [bool; LETTER_PX_COUNT] = [
232 false, false, true, false, false, false, true, false, false, false, true, false, false, false,
233 false, false, false, false, true, false,
234];
235const PERIOD: [bool; LETTER_PX_COUNT] = [
236 false, false, false, false, false, false, false, false, false, false, false, false, false,
237 false, false, false, false, true, false, false,
238];
239const COMMA: [bool; LETTER_PX_COUNT] = [
240 false, false, false, false, false, false, false, false, false, false, false, false, false,
241 true, false, false, false, true, false, false,
242];
243const COLON: [bool; LETTER_PX_COUNT] = [
244 false, false, false, false, false, true, false, false, false, false, false, false, false, true,
245 false, false, false, false, false, false,
246];
247const SEMICOLON: [bool; LETTER_PX_COUNT] = [
248 false, false, false, false, false, true, false, false, false, false, false, false, false, true,
249 false, false, false, true, false, false,
250];
251const PLUS: [bool; LETTER_PX_COUNT] = [
252 false, false, false, false, false, true, false, false, true, true, true, false, false, true,
253 false, false, false, false, false, false,
254];
255const MINUS: [bool; LETTER_PX_COUNT] = [
256 false, false, false, false, false, false, false, false, true, true, true, false, false, false,
257 false, false, false, false, false, false,
258];
259const EQUALS: [bool; LETTER_PX_COUNT] = [
260 false, false, false, false, true, true, true, false, false, false, false, false, true, true,
261 true, false, false, false, false, false,
262];
263const SQUARE_L: [bool; LETTER_PX_COUNT] = [
264 false, true, true, false, false, true, false, false, false, true, false, false, false, true,
265 false, false, false, true, true, false,
266];
267const SQUARE_R: [bool; LETTER_PX_COUNT] = [
268 false, true, true, false, false, false, true, false, false, false, true, false, false, false,
269 true, false, false, true, true, false,
270];
271const PAREN_L: [bool; LETTER_PX_COUNT] = [
272 false, false, true, false, false, true, false, false, false, true, false, false, false, true,
273 false, false, false, false, true, false,
274];
275const PAREN_R: [bool; LETTER_PX_COUNT] = [
276 false, true, false, false, false, false, true, false, false, false, true, false, false, false,
277 true, false, false, true, false, false,
278];
279const ANGLE_L: [bool; LETTER_PX_COUNT] = [
280 false, false, true, false, false, true, false, false, true, false, false, false, false, true,
281 false, false, false, false, true, false,
282];
283const ANGLE_R: [bool; LETTER_PX_COUNT] = [
284 false, true, false, false, false, false, true, false, false, false, false, true, false, false,
285 true, false, false, true, false, false,
286];
287const DOUBLE_QUOTE: [bool; LETTER_PX_COUNT] = [
288 false, false, false, false, false, true, false, true, false, true, false, true, false, false,
289 false, false, false, false, false, false,
290];
291const QUOTE: [bool; LETTER_PX_COUNT] = [
292 false, false, false, false, false, true, false, false, false, true, false, false, false, false,
293 false, false, false, false, false, false,
294];
295const QUESTION: [bool; LETTER_PX_COUNT] = [
296 false, true, true, false, true, false, false, true, false, false, true, false, false, false,
297 false, false, false, false, true, false,
298];
299const SLASH: [bool; LETTER_PX_COUNT] = [
300 false, false, false, false, false, false, false, true, false, false, true, false, false, true,
301 false, false, true, false, false, false,
302];
303const BACKSLASH: [bool; LETTER_PX_COUNT] = [
304 false, false, false, false, true, false, false, false, false, true, false, false, false, false,
305 true, false, false, false, false, true,
306];
307const ASTERISK: [bool; LETTER_PX_COUNT] = [
308 false, false, false, false, false, true, false, true, false, false, true, false, false, true,
309 false, true, false, false, false, false,
310];
311const PERCENT: [bool; LETTER_PX_COUNT] = [
312 true, false, false, true, false, false, true, false, false, true, false, false, true, false,
313 false, true, false, false, false, false,
314];
315const ZERO: [bool; LETTER_PX_COUNT] = [
316 false, false, true, false, false, true, false, true, false, true, false, true, false, true,
317 false, true, false, false, true, false,
318];
319const ONE: [bool; LETTER_PX_COUNT] = [
320 false, false, true, false, false, true, true, false, false, false, true, false, false, false,
321 true, false, false, true, true, true,
322];
323const TWO: [bool; LETTER_PX_COUNT] = [
324 false, true, true, false, true, false, false, true, false, false, true, false, false, true,
325 false, false, true, true, true, true,
326];
327const THREE: [bool; LETTER_PX_COUNT] = [
328 false, true, true, false, false, false, false, true, false, true, true, false, false, false,
329 false, true, false, true, true, false,
330];
331const FOUR: [bool; LETTER_PX_COUNT] = [
332 true, false, false, false, true, false, false, false, true, false, true, false, true, true,
333 true, true, false, false, true, false,
334];
335const FIVE: [bool; LETTER_PX_COUNT] = [
336 true, true, true, true, true, false, false, false, true, true, true, false, false, false,
337 false, true, true, true, true, false,
338];
339const SIX: [bool; LETTER_PX_COUNT] = [
340 false, true, true, false, true, false, false, false, true, true, true, false, true, false,
341 false, true, false, true, true, false,
342];
343const SEVEN: [bool; LETTER_PX_COUNT] = [
344 true, true, true, true, false, false, false, true, false, false, true, false, false, true,
345 false, false, false, true, false, false,
346];
347const EIGHT: [bool; LETTER_PX_COUNT] = [
348 false, true, true, false, true, false, false, true, false, true, true, false, true, false,
349 false, true, false, true, true, false,
350];
351const NINE: [bool; LETTER_PX_COUNT] = [
352 false, true, true, false, true, false, false, true, false, true, true, true, false, false,
353 false, true, false, true, true, false,
354];
355const UNDERSCORE: [bool; LETTER_PX_COUNT] = [
356 false, false, false, false, false, false, false, false, false, false, false, false, false,
357 false, false, false, true, true, true, true,
358];
359const UNKNOWN: [bool; LETTER_PX_COUNT] = [
360 true, true, true, true, true, false, false, true, true, false, false, true, true, false, false,
361 true, true, true, true, true,
362];
363const HASH: [bool; LETTER_PX_COUNT] = [
364 false, true, false, true, true, true, true, true, false, true, false, true, true, true, true,
365 true, false, true, false, true,
366];
367const ELLIPSIS: [bool; LETTER_PX_COUNT] = [
368 false, false, false, false, false, false, false, false, false, false, false, false, false,
369 false, false, false, false, true, false, true,
370];
371const POUND: [bool; LETTER_PX_COUNT] = [
372 false, true, true, false, true, false, false, true, true, true, false, false, true, false,
373 false, false, true, true, true, true,
374];
375const POWER: [bool; LETTER_PX_COUNT] = [
376 false, true, false, false, true, false, true, false, false, false, false, false, false, false,
377 false, false, false, false, false, false,
378];
379const CURLY_L: [bool; LETTER_PX_COUNT] = [
380 false, false, true, true, false, true, false, false, true, true, false, false, false, true,
381 false, false, false, false, true, true,
382];
383const CURLY_R: [bool; LETTER_PX_COUNT] = [
384 true, true, false, false, false, false, true, false, false, false, true, true, false, false,
385 true, false, true, true, false, false,
386];
387const BACKTICK: [bool; LETTER_PX_COUNT] = [
388 false, true, false, false, false, false, true, false, false, false, false, false, false, false,
389 false, false, false, false, false, false,
390];
391const TILDE: [bool; LETTER_PX_COUNT] = [
392 false, false, false, false, false, true, false, true, true, false, true, false, false, false,
393 false, false, false, false, false, false,
394];
395const DEGREE: [bool; LETTER_PX_COUNT] = [
396 false, false, true, false, false, true, false, true, false, false, true, false, false, false,
397 false, false, false, false, false, false,
398];
399const YEN: [bool; LETTER_PX_COUNT] = [
400 false, true, false, true, false, true, false, true, false, false, true, false, false, true,
401 true, true, false, false, true, false,
402];
403const CURRENCY: [bool; LETTER_PX_COUNT] = [
404 false, false, false, false, true, false, false, true, false, true, true, false, false, true,
405 true, false, true, false, false, true,
406];
407const DOLLAR: [bool; LETTER_PX_COUNT] = [
408 false, true, true, true, true, false, true, false, false, true, true, false, false, true,
409 false, true, true, true, true, false,
410];
411const CENT: [bool; LETTER_PX_COUNT] = [
412 false, false, true, false, false, true, true, true, false, true, false, false, false, true,
413 true, true, false, false, true, false,
414];
415const CHECK: [bool; LETTER_PX_COUNT] = [
416 false, false, false, false, false, false, false, true, true, false, true, false, false, true,
417 false, false, false, false, false, false,
418];
419const LOWER_A: [bool; LETTER_PX_COUNT] = [
420 false, false, false, false, false, true, true, false, true, false, true, false, false, true,
421 true, false, false, false, false, false,
422];
423const LOWER_B: [bool; LETTER_PX_COUNT] = [
424 true, false, false, false, true, true, false, false, true, false, true, false, true, true,
425 false, false, false, false, false, false,
426];
427const LOWER_C: [bool; LETTER_PX_COUNT] = [
428 false, false, false, false, true, true, false, false, true, false, false, false, true, true,
429 false, false, false, false, false, false,
430];
431const LOWER_D: [bool; LETTER_PX_COUNT] = [
432 false, false, true, false, false, true, true, false, true, false, true, false, false, true,
433 true, false, false, false, false, false,
434];
435const LOWER_E: [bool; LETTER_PX_COUNT] = [
436 false, false, false, false, true, true, true, false, true, false, true, false, true, true,
437 false, false, false, false, false, false,
438];
439const LOWER_F: [bool; LETTER_PX_COUNT] = [
440 false, true, false, false, true, false, false, false, true, true, false, false, true, false,
441 false, false, false, false, false, false,
442];
443const LOWER_G: [bool; LETTER_PX_COUNT] = [
444 false, true, true, false, true, false, true, false, false, true, true, false, false, false,
445 true, false, false, true, true, false,
446];
447const LOWER_H: [bool; LETTER_PX_COUNT] = [
448 true, false, false, false, true, false, false, false, true, true, true, false, true, false,
449 true, false, false, false, false, false,
450];
451const LOWER_I: [bool; LETTER_PX_COUNT] = [
452 false, true, false, false, false, false, false, false, false, true, false, false, false, true,
453 false, false, false, false, false, false,
454];
455const LOWER_J: [bool; LETTER_PX_COUNT] = [
456 false, true, false, false, false, false, false, false, false, true, false, false, false, true,
457 false, false, true, false, false, false,
458];
459const LOWER_K: [bool; LETTER_PX_COUNT] = [
460 true, false, false, false, true, false, true, false, true, true, false, false, true, false,
461 true, false, false, false, false, false,
462];
463const LOWER_L: [bool; LETTER_PX_COUNT] = [
464 true, false, false, false, true, false, false, false, true, false, false, false, false, true,
465 false, false, false, false, false, false,
466];
467const LOWER_M: [bool; LETTER_PX_COUNT] = [
468 false, false, false, false, false, true, true, false, true, false, true, true, true, false,
469 false, true, false, false, false, false,
470];
471const LOWER_N: [bool; LETTER_PX_COUNT] = [
472 false, false, false, false, true, true, true, false, true, false, true, false, true, false,
473 true, false, false, false, false, false,
474];
475const LOWER_O: [bool; LETTER_PX_COUNT] = [
476 false, false, false, false, false, true, false, false, true, false, true, false, false, true,
477 false, false, false, false, false, false,
478];
479const LOWER_P: [bool; LETTER_PX_COUNT] = [
480 false, false, false, false, false, true, false, false, true, false, true, false, true, true,
481 false, false, true, false, false, false,
482];
483const LOWER_Q: [bool; LETTER_PX_COUNT] = [
484 false, false, false, false, false, true, true, false, true, false, true, false, false, true,
485 true, false, false, false, true, false,
486];
487const LOWER_R: [bool; LETTER_PX_COUNT] = [
488 false, false, false, false, false, true, false, false, true, false, false, false, true, false,
489 false, false, false, false, false, false,
490];
491const LOWER_S: [bool; LETTER_PX_COUNT] = [
492 false, false, false, false, false, false, true, false, false, true, false, false, true, true,
493 false, false, false, false, false, false,
494];
495const LOWER_T: [bool; LETTER_PX_COUNT] = [
496 true, false, false, false, true, true, false, false, true, false, false, false, false, true,
497 false, false, false, false, false, false,
498];
499const LOWER_U: [bool; LETTER_PX_COUNT] = [
500 false, false, false, false, true, false, true, false, true, false, true, false, true, true,
501 true, false, false, false, false, false,
502];
503const LOWER_V: [bool; LETTER_PX_COUNT] = [
504 false, false, false, false, true, false, true, false, true, false, true, false, false, true,
505 false, false, false, false, false, false,
506];
507const LOWER_W: [bool; LETTER_PX_COUNT] = [
508 false, false, false, false, true, false, false, true, true, false, true, true, true, true,
509 true, true, false, false, false, false,
510];
511const LOWER_X: [bool; LETTER_PX_COUNT] = [
512 false, false, false, false, true, false, true, false, false, true, false, false, true, false,
513 true, false, false, false, false, false,
514];
515const LOWER_Y: [bool; LETTER_PX_COUNT] = [
516 false, false, false, false, false, true, false, true, false, true, false, true, false, false,
517 true, false, true, true, false, false,
518];
519const LOWER_Z: [bool; LETTER_PX_COUNT] = [
520 false, false, false, false, true, false, false, false, false, true, false, false, false, true,
521 true, false, false, false, false, false,
522];
523const EURO: [bool; LETTER_PX_COUNT] = [
524 false, false, true, true, false, true, false, false, true, true, true, false, false, true,
525 false, false, false, false, true, true,
526];
527const PIPE: [bool; LETTER_PX_COUNT] = [
528 false, false, true, false, false, false, true, false, false, false, true, false, false, false,
529 true, false, false, false, true, false,
530];