buffer_graphics_lib/text/font/
standard_4x5.rs

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 => &AMPERSAND,
17        39 => &QUOTE,
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];