1use super::{Name, name};
2use crate::sname;
3use educe::Educe;
4use std::array::from_fn;
5
6#[derive(Debug, PartialEq, Clone, Educe)]
10#[educe(Deref, DerefMut)]
11pub struct Encoding([Name; 256]);
12
13impl Encoding {
14 #[inline]
15 pub const fn new(names: [Name; 256]) -> Self {
16 Self(names)
17 }
18
19 #[inline]
20 pub fn from(names: [&str; 256]) -> Self {
21 Self(from_fn(|i| name(names[i])))
22 }
23
24 #[inline]
25 pub fn get_name(&self, ch: u8) -> &Name {
26 &self.0[ch as usize]
27 }
28
29 #[inline]
31 pub fn get_str(&self, ch: u8) -> &str {
32 self.0[ch as usize].as_str()
33 }
34
35 pub fn predefined(name: &Name) -> Option<Self> {
36 if *name == sname("MacRomanEncoding") {
37 Some(Self::MAC_ROMAN)
38 } else if *name == sname("MacExpertEncoding") {
39 Some(Self::MAC_EXPERT)
40 } else if *name == sname("WinAnsiEncoding") {
41 Some(Self::WIN_ANSI)
42 } else if *name == sname("StandardEncoding") {
43 Some(Self::STANDARD)
44 } else if *name == sname("Symbol") {
45 Some(Self::SYMBOL)
46 } else if *name == sname("ZapfDingbats") {
47 Some(Self::ZAPFDINGBATS)
48 } else {
49 None
50 }
51 }
52}
53
54impl Default for Encoding {
55 fn default() -> Self {
57 Self::new(from_fn(|_| sname(".notdef")))
58 }
59}
60
61impl Encoding {
62 pub const MAC_EXPERT: Self = Self([
63 sname(".notdef"),
64 sname(".notdef"),
65 sname(".notdef"),
66 sname(".notdef"),
67 sname(".notdef"),
68 sname(".notdef"),
69 sname(".notdef"),
70 sname(".notdef"),
71 sname(".notdef"),
72 sname(".notdef"),
73 sname(".notdef"),
74 sname(".notdef"),
75 sname(".notdef"),
76 sname(".notdef"),
77 sname(".notdef"),
78 sname(".notdef"),
79 sname(".notdef"),
80 sname(".notdef"),
81 sname(".notdef"),
82 sname(".notdef"),
83 sname(".notdef"),
84 sname(".notdef"),
85 sname(".notdef"),
86 sname(".notdef"),
87 sname(".notdef"),
88 sname(".notdef"),
89 sname(".notdef"),
90 sname(".notdef"),
91 sname(".notdef"),
92 sname(".notdef"),
93 sname(".notdef"),
94 sname(".notdef"),
95 sname("space"),
96 sname("exclamsmall"),
97 sname("Hungarumlautsmall"),
98 sname("centoldstyle"),
99 sname("dollaroldstyle"),
100 sname("dollarsuperior"),
101 sname("ampersandsmall"),
102 sname("Acutesmall"),
103 sname("parenleftsuperior"),
104 sname("parenrightsuperior"),
105 sname("twodotenleader"),
106 sname("onedotenleader"),
107 sname("comma"),
108 sname("hyphen"),
109 sname("period"),
110 sname("fraction"),
111 sname("zerooldstyle"),
112 sname("oneoldstyle"),
113 sname("twooldstyle"),
114 sname("threeoldstyle"),
115 sname("fouroldstyle"),
116 sname("fiveoldstyle"),
117 sname("sixoldstyle"),
118 sname("sevenoldstyle"),
119 sname("eightoldstyle"),
120 sname("nineoldstyle"),
121 sname("colon"),
122 sname("semicolon"),
123 sname(".notdef"),
124 sname("threequartersemdash"),
125 sname(".notdef"),
126 sname("questionsmall"),
127 sname(".notdef"),
128 sname(".notdef"),
129 sname(".notdef"),
130 sname(".notdef"),
131 sname("Ethsmall"),
132 sname(".notdef"),
133 sname(".notdef"),
134 sname("onequarter"),
135 sname("onehalf"),
136 sname("threequarters"),
137 sname("oneeighth"),
138 sname("threeeighths"),
139 sname("fiveeighths"),
140 sname("seveneighths"),
141 sname("onethird"),
142 sname("twothirds"),
143 sname(".notdef"),
144 sname(".notdef"),
145 sname(".notdef"),
146 sname(".notdef"),
147 sname(".notdef"),
148 sname(".notdef"),
149 sname("ff"),
150 sname("fi"),
151 sname("fl"),
152 sname("ffi"),
153 sname("ffl"),
154 sname("parenleftinferior"),
155 sname(".notdef"),
156 sname("parenrightinferior"),
157 sname("Circumflexsmall"),
158 sname("hypheninferior"),
159 sname("Gravesmall"),
160 sname("Asmall"),
161 sname("Bsmall"),
162 sname("Csmall"),
163 sname("Dsmall"),
164 sname("Esmall"),
165 sname("Fsmall"),
166 sname("Gsmall"),
167 sname("Hsmall"),
168 sname("Ismall"),
169 sname("Jsmall"),
170 sname("Ksmall"),
171 sname("Lsmall"),
172 sname("Msmall"),
173 sname("Nsmall"),
174 sname("Osmall"),
175 sname("Psmall"),
176 sname("Qsmall"),
177 sname("Rsmall"),
178 sname("Ssmall"),
179 sname("Tsmall"),
180 sname("Usmall"),
181 sname("Vsmall"),
182 sname("Wsmall"),
183 sname("Xsmall"),
184 sname("Ysmall"),
185 sname("Zsmall"),
186 sname("colonmonetary"),
187 sname("onefitted"),
188 sname("rupiah"),
189 sname("Tildesmall"),
190 sname(".notdef"),
191 sname(".notdef"),
192 sname("asuperior"),
193 sname("centsuperior"),
194 sname(".notdef"),
195 sname(".notdef"),
196 sname(".notdef"),
197 sname(".notdef"),
198 sname("Aacutesmall"),
199 sname("Agravesmall"),
200 sname("Acircumflexsmall"),
201 sname("Adieresissmall"),
202 sname("Atildesmall"),
203 sname("Aringsmall"),
204 sname("Ccedillasmall"),
205 sname("Eacutesmall"),
206 sname("Egravesmall"),
207 sname("Ecircumflexsmall"),
208 sname("Edieresissmall"),
209 sname("Iacutesmall"),
210 sname("Igravesmall"),
211 sname("Icircumflexsmall"),
212 sname("Idieresissmall"),
213 sname("Ntildesmall"),
214 sname("Oacutesmall"),
215 sname("Ogravesmall"),
216 sname("Ocircumflexsmall"),
217 sname("Odieresissmall"),
218 sname("Otildesmall"),
219 sname("Uacutesmall"),
220 sname("Ugravesmall"),
221 sname("Ucircumflexsmall"),
222 sname("Udieresissmall"),
223 sname(".notdef"),
224 sname("eightsuperior"),
225 sname("fourinferior"),
226 sname("threeinferior"),
227 sname("sixinferior"),
228 sname("eightinferior"),
229 sname("seveninferior"),
230 sname("Scaronsmall"),
231 sname(".notdef"),
232 sname("centinferior"),
233 sname("twoinferior"),
234 sname(".notdef"),
235 sname("Dieresissmall"),
236 sname(".notdef"),
237 sname("Caronsmall"),
238 sname("osuperior"),
239 sname("fiveinferior"),
240 sname(".notdef"),
241 sname("commainferior"),
242 sname("periodinferior"),
243 sname("Yacutesmall"),
244 sname(".notdef"),
245 sname("dollarinferior"),
246 sname(".notdef"),
247 sname(".notdef"),
248 sname("Thornsmall"),
249 sname(".notdef"),
250 sname("nineinferior"),
251 sname("zeroinferior"),
252 sname("Zcaronsmall"),
253 sname("AEsmall"),
254 sname("Oslashsmall"),
255 sname("questiondownsmall"),
256 sname("oneinferior"),
257 sname("Lslashsmall"),
258 sname(".notdef"),
259 sname(".notdef"),
260 sname(".notdef"),
261 sname(".notdef"),
262 sname(".notdef"),
263 sname(".notdef"),
264 sname("Cedillasmall"),
265 sname(".notdef"),
266 sname(".notdef"),
267 sname(".notdef"),
268 sname(".notdef"),
269 sname(".notdef"),
270 sname("OEsmall"),
271 sname("figuredash"),
272 sname("hyphensuperior"),
273 sname(".notdef"),
274 sname(".notdef"),
275 sname(".notdef"),
276 sname(".notdef"),
277 sname("exclamdownsmall"),
278 sname(".notdef"),
279 sname("Ydieresissmall"),
280 sname(".notdef"),
281 sname("onesuperior"),
282 sname("twosuperior"),
283 sname("threesuperior"),
284 sname("foursuperior"),
285 sname("fivesuperior"),
286 sname("sixsuperior"),
287 sname("sevensuperior"),
288 sname("ninesuperior"),
289 sname("zerosuperior"),
290 sname(".notdef"),
291 sname("esuperior"),
292 sname("rsuperior"),
293 sname("tsuperior"),
294 sname(".notdef"),
295 sname(".notdef"),
296 sname("isuperior"),
297 sname("ssuperior"),
298 sname("dsuperior"),
299 sname(".notdef"),
300 sname(".notdef"),
301 sname(".notdef"),
302 sname(".notdef"),
303 sname(".notdef"),
304 sname("lsuperior"),
305 sname("Ogoneksmall"),
306 sname("Brevesmall"),
307 sname("Macronsmall"),
308 sname("bsuperior"),
309 sname("nsuperior"),
310 sname("msuperior"),
311 sname("commasuperior"),
312 sname("periodsuperior"),
313 sname("Dotaccentsmall"),
314 sname("Ringsmall"),
315 sname(".notdef"),
316 sname(".notdef"),
317 sname(".notdef"),
318 sname(".notdef"),
319 ]);
320 pub const MAC_ROMAN: Self = Self([
321 sname(".notdef"),
322 sname(".notdef"),
323 sname(".notdef"),
324 sname(".notdef"),
325 sname(".notdef"),
326 sname(".notdef"),
327 sname(".notdef"),
328 sname(".notdef"),
329 sname(".notdef"),
330 sname(".notdef"),
331 sname(".notdef"),
332 sname(".notdef"),
333 sname(".notdef"),
334 sname(".notdef"),
335 sname(".notdef"),
336 sname(".notdef"),
337 sname(".notdef"),
338 sname(".notdef"),
339 sname(".notdef"),
340 sname(".notdef"),
341 sname(".notdef"),
342 sname(".notdef"),
343 sname(".notdef"),
344 sname(".notdef"),
345 sname(".notdef"),
346 sname(".notdef"),
347 sname(".notdef"),
348 sname(".notdef"),
349 sname(".notdef"),
350 sname(".notdef"),
351 sname(".notdef"),
352 sname(".notdef"),
353 sname("space"),
354 sname("exclam"),
355 sname("quotedbl"),
356 sname("numbersign"),
357 sname("dollar"),
358 sname("percent"),
359 sname("ampersand"),
360 sname("quotesingle"),
361 sname("parenleft"),
362 sname("parenright"),
363 sname("asterisk"),
364 sname("plus"),
365 sname("comma"),
366 sname("hyphen"),
367 sname("period"),
368 sname("slash"),
369 sname("zero"),
370 sname("one"),
371 sname("two"),
372 sname("three"),
373 sname("four"),
374 sname("five"),
375 sname("six"),
376 sname("seven"),
377 sname("eight"),
378 sname("nine"),
379 sname("colon"),
380 sname("semicolon"),
381 sname("less"),
382 sname("equal"),
383 sname("greater"),
384 sname("question"),
385 sname("at"),
386 sname("A"),
387 sname("B"),
388 sname("C"),
389 sname("D"),
390 sname("E"),
391 sname("F"),
392 sname("G"),
393 sname("H"),
394 sname("I"),
395 sname("J"),
396 sname("K"),
397 sname("L"),
398 sname("M"),
399 sname("N"),
400 sname("O"),
401 sname("P"),
402 sname("Q"),
403 sname("R"),
404 sname("S"),
405 sname("T"),
406 sname("U"),
407 sname("V"),
408 sname("W"),
409 sname("X"),
410 sname("Y"),
411 sname("Z"),
412 sname("bracketleft"),
413 sname("backslash"),
414 sname("bracketright"),
415 sname("asciicircum"),
416 sname("underscore"),
417 sname("grave"),
418 sname("a"),
419 sname("b"),
420 sname("c"),
421 sname("d"),
422 sname("e"),
423 sname("f"),
424 sname("g"),
425 sname("h"),
426 sname("i"),
427 sname("j"),
428 sname("k"),
429 sname("l"),
430 sname("m"),
431 sname("n"),
432 sname("o"),
433 sname("p"),
434 sname("q"),
435 sname("r"),
436 sname("s"),
437 sname("t"),
438 sname("u"),
439 sname("v"),
440 sname("w"),
441 sname("x"),
442 sname("y"),
443 sname("z"),
444 sname("braceleft"),
445 sname("bar"),
446 sname("braceright"),
447 sname("asciitilde"),
448 sname(".notdef"),
449 sname("Adieresis"),
450 sname("Aring"),
451 sname("Ccedilla"),
452 sname("Eacute"),
453 sname("Ntilde"),
454 sname("Odieresis"),
455 sname("Udieresis"),
456 sname("aacute"),
457 sname("agrave"),
458 sname("acircumflex"),
459 sname("adieresis"),
460 sname("atilde"),
461 sname("aring"),
462 sname("ccedilla"),
463 sname("eacute"),
464 sname("egrave"),
465 sname("ecircumflex"),
466 sname("edieresis"),
467 sname("iacute"),
468 sname("igrave"),
469 sname("icircumflex"),
470 sname("idieresis"),
471 sname("ntilde"),
472 sname("oacute"),
473 sname("ograve"),
474 sname("ocircumflex"),
475 sname("odieresis"),
476 sname("otilde"),
477 sname("uacute"),
478 sname("ugrave"),
479 sname("ucircumflex"),
480 sname("udieresis"),
481 sname("dagger"),
482 sname("degree"),
483 sname("cent"),
484 sname("sterling"),
485 sname("section"),
486 sname("bullet"),
487 sname("paragraph"),
488 sname("germandbls"),
489 sname("registered"),
490 sname("copyright"),
491 sname("trademark"),
492 sname("acute"),
493 sname("dieresis"),
494 sname("notequal"),
495 sname("AE"),
496 sname("Oslash"),
497 sname("infinity"),
498 sname("plusminus"),
499 sname("lessequal"),
500 sname("greaterequal"),
501 sname("yen"),
502 sname("mu"),
503 sname("partialdiff"),
504 sname("summation"),
505 sname("product"),
506 sname("pi"),
507 sname("integral"),
508 sname("ordfeminine"),
509 sname("ordmasculine"),
510 sname("Omega"),
511 sname("ae"),
512 sname("oslash"),
513 sname("questiondown"),
514 sname("exclamdown"),
515 sname("logicalnot"),
516 sname("radical"),
517 sname("florin"),
518 sname("approxequal"),
519 sname("Delta"),
520 sname("guillemotleft"),
521 sname("guillemotright"),
522 sname("ellipsis"),
523 sname("space"),
524 sname("Agrave"),
525 sname("Atilde"),
526 sname("Otilde"),
527 sname("OE"),
528 sname("oe"),
529 sname("endash"),
530 sname("emdash"),
531 sname("quotedblleft"),
532 sname("quotedblright"),
533 sname("quoteleft"),
534 sname("quoteright"),
535 sname("divide"),
536 sname("lozenge"),
537 sname("ydieresis"),
538 sname("Ydieresis"),
539 sname("fraction"),
540 sname("currency"),
541 sname("guilsinglleft"),
542 sname("guilsinglright"),
543 sname("fi"),
544 sname("fl"),
545 sname("daggerdbl"),
546 sname("periodcentered"),
547 sname("quotesinglbase"),
548 sname("quotedblbase"),
549 sname("perthousand"),
550 sname("Acircumflex"),
551 sname("Ecircumflex"),
552 sname("Aacute"),
553 sname("Edieresis"),
554 sname("Egrave"),
555 sname("Iacute"),
556 sname("Icircumflex"),
557 sname("Idieresis"),
558 sname("Igrave"),
559 sname("Oacute"),
560 sname("Ocircumflex"),
561 sname("apple"),
562 sname("Ograve"),
563 sname("Uacute"),
564 sname("Ucircumflex"),
565 sname("Ugrave"),
566 sname("dotlessi"),
567 sname("circumflex"),
568 sname("tilde"),
569 sname("macron"),
570 sname("breve"),
571 sname("dotaccent"),
572 sname("ring"),
573 sname("cedilla"),
574 sname("hungarumlaut"),
575 sname("ogonek"),
576 sname("caron"),
577 ]);
578 pub const STANDARD: Self = Self([
579 sname(".notdef"),
580 sname(".notdef"),
581 sname(".notdef"),
582 sname(".notdef"),
583 sname(".notdef"),
584 sname(".notdef"),
585 sname(".notdef"),
586 sname(".notdef"),
587 sname(".notdef"),
588 sname(".notdef"),
589 sname(".notdef"),
590 sname(".notdef"),
591 sname(".notdef"),
592 sname(".notdef"),
593 sname(".notdef"),
594 sname(".notdef"),
595 sname(".notdef"),
596 sname(".notdef"),
597 sname(".notdef"),
598 sname(".notdef"),
599 sname(".notdef"),
600 sname(".notdef"),
601 sname(".notdef"),
602 sname(".notdef"),
603 sname(".notdef"),
604 sname(".notdef"),
605 sname(".notdef"),
606 sname(".notdef"),
607 sname(".notdef"),
608 sname(".notdef"),
609 sname(".notdef"),
610 sname(".notdef"),
611 sname("space"),
612 sname("exclam"),
613 sname("quotedbl"),
614 sname("numbersign"),
615 sname("dollar"),
616 sname("percent"),
617 sname("ampersand"),
618 sname("quotesingle"),
619 sname("parenleft"),
620 sname("parenright"),
621 sname("asterisk"),
622 sname("plus"),
623 sname("comma"),
624 sname("hyphen"),
625 sname("period"),
626 sname("slash"),
627 sname("zero"),
628 sname("one"),
629 sname("two"),
630 sname("three"),
631 sname("four"),
632 sname("five"),
633 sname("six"),
634 sname("seven"),
635 sname("eight"),
636 sname("nine"),
637 sname("colon"),
638 sname("semicolon"),
639 sname("less"),
640 sname("equal"),
641 sname("greater"),
642 sname("question"),
643 sname("at"),
644 sname("A"),
645 sname("B"),
646 sname("C"),
647 sname("D"),
648 sname("E"),
649 sname("F"),
650 sname("G"),
651 sname("H"),
652 sname("I"),
653 sname("J"),
654 sname("K"),
655 sname("L"),
656 sname("M"),
657 sname("N"),
658 sname("O"),
659 sname("P"),
660 sname("Q"),
661 sname("R"),
662 sname("S"),
663 sname("T"),
664 sname("U"),
665 sname("V"),
666 sname("W"),
667 sname("X"),
668 sname("Y"),
669 sname("Z"),
670 sname("bracketleft"),
671 sname("backslash"),
672 sname("bracketright"),
673 sname("asciicircum"),
674 sname("underscore"),
675 sname("grave"),
676 sname("a"),
677 sname("b"),
678 sname("c"),
679 sname("d"),
680 sname("e"),
681 sname("f"),
682 sname("g"),
683 sname("h"),
684 sname("i"),
685 sname("j"),
686 sname("k"),
687 sname("l"),
688 sname("m"),
689 sname("n"),
690 sname("o"),
691 sname("p"),
692 sname("q"),
693 sname("r"),
694 sname("s"),
695 sname("t"),
696 sname("u"),
697 sname("v"),
698 sname("w"),
699 sname("x"),
700 sname("y"),
701 sname("z"),
702 sname("braceleft"),
703 sname("bar"),
704 sname("braceright"),
705 sname("asciitilde"),
706 sname("bullet"),
707 sname("Euro"),
708 sname("bullet"),
709 sname("quotesinglbase"),
710 sname("florin"),
711 sname("quotedblbase"),
712 sname("ellipsis"),
713 sname("dagger"),
714 sname("daggerdbl"),
715 sname("circumflex"),
716 sname("perthousand"),
717 sname("Scaron"),
718 sname("guilsinglleft"),
719 sname("OE"),
720 sname("bullet"),
721 sname("Zcaron"),
722 sname("bullet"),
723 sname("bullet"),
724 sname("quoteleft"),
725 sname("quoteright"),
726 sname("quotedblleft"),
727 sname("quotedblright"),
728 sname("bullet"),
729 sname("endash"),
730 sname("emdash"),
731 sname("tilde"),
732 sname("trademark"),
733 sname("scaron"),
734 sname("guilsinglright"),
735 sname("oe"),
736 sname("bullet"),
737 sname("zcaron"),
738 sname("Ydieresis"),
739 sname("space"),
740 sname("exclamdown"),
741 sname("cent"),
742 sname("sterling"),
743 sname("currency"),
744 sname("yen"),
745 sname("brokenbar"),
746 sname("section"),
747 sname("dieresis"),
748 sname("copyright"),
749 sname("ordfeminine"),
750 sname("guillemotleft"),
751 sname("logicalnot"),
752 sname("hyphen"),
753 sname("registered"),
754 sname("macron"),
755 sname("degree"),
756 sname("plusminus"),
757 sname("twosuperior"),
758 sname("threesuperior"),
759 sname("acute"),
760 sname("mu"),
761 sname("paragraph"),
762 sname("periodcentered"),
763 sname("cedilla"),
764 sname("onesuperior"),
765 sname("ordmasculine"),
766 sname("guillemotright"),
767 sname("onequarter"),
768 sname("onehalf"),
769 sname("threequarters"),
770 sname("questiondown"),
771 sname("Agrave"),
772 sname("Aacute"),
773 sname("Acircumflex"),
774 sname("Atilde"),
775 sname("Adieresis"),
776 sname("Aring"),
777 sname("AE"),
778 sname("Ccedilla"),
779 sname("Egrave"),
780 sname("Eacute"),
781 sname("Ecircumflex"),
782 sname("Edieresis"),
783 sname("Igrave"),
784 sname("Iacute"),
785 sname("Icircumflex"),
786 sname("Idieresis"),
787 sname("Eth"),
788 sname("Ntilde"),
789 sname("Ograve"),
790 sname("Oacute"),
791 sname("Ocircumflex"),
792 sname("Otilde"),
793 sname("Odieresis"),
794 sname("multiply"),
795 sname("Oslash"),
796 sname("Ugrave"),
797 sname("Uacute"),
798 sname("Ucircumflex"),
799 sname("Udieresis"),
800 sname("Yacute"),
801 sname("Thorn"),
802 sname("germandbls"),
803 sname("agrave"),
804 sname("aacute"),
805 sname("acircumflex"),
806 sname("atilde"),
807 sname("adieresis"),
808 sname("aring"),
809 sname("ae"),
810 sname("ccedilla"),
811 sname("egrave"),
812 sname("eacute"),
813 sname("ecircumflex"),
814 sname("edieresis"),
815 sname("igrave"),
816 sname("iacute"),
817 sname("icircumflex"),
818 sname("idieresis"),
819 sname("eth"),
820 sname("ntilde"),
821 sname("ograve"),
822 sname("oacute"),
823 sname("ocircumflex"),
824 sname("otilde"),
825 sname("odieresis"),
826 sname("divide"),
827 sname("oslash"),
828 sname("ugrave"),
829 sname("uacute"),
830 sname("ucircumflex"),
831 sname("udieresis"),
832 sname("yacute"),
833 sname("thorn"),
834 sname("ydieresis"),
835 ]);
836 pub const SYMBOL: Self = Self([
837 sname(".notdef"),
838 sname(".notdef"),
839 sname(".notdef"),
840 sname(".notdef"),
841 sname(".notdef"),
842 sname(".notdef"),
843 sname(".notdef"),
844 sname(".notdef"),
845 sname(".notdef"),
846 sname(".notdef"),
847 sname(".notdef"),
848 sname(".notdef"),
849 sname(".notdef"),
850 sname(".notdef"),
851 sname(".notdef"),
852 sname(".notdef"),
853 sname(".notdef"),
854 sname(".notdef"),
855 sname(".notdef"),
856 sname(".notdef"),
857 sname(".notdef"),
858 sname(".notdef"),
859 sname(".notdef"),
860 sname(".notdef"),
861 sname(".notdef"),
862 sname(".notdef"),
863 sname(".notdef"),
864 sname(".notdef"),
865 sname(".notdef"),
866 sname(".notdef"),
867 sname(".notdef"),
868 sname(".notdef"),
869 sname("space"),
870 sname("exclam"),
871 sname("universal"),
872 sname("numbersign"),
873 sname("existential"),
874 sname("percent"),
875 sname("ampersand"),
876 sname("suchthat"),
877 sname("parenleft"),
878 sname("parenright"),
879 sname("asteriskmath"),
880 sname("plus"),
881 sname("comma"),
882 sname("minus"),
883 sname("period"),
884 sname("slash"),
885 sname("zero"),
886 sname("one"),
887 sname("two"),
888 sname("three"),
889 sname("four"),
890 sname("five"),
891 sname("six"),
892 sname("seven"),
893 sname("eight"),
894 sname("nine"),
895 sname("colon"),
896 sname("semicolon"),
897 sname("less"),
898 sname("equal"),
899 sname("greater"),
900 sname("question"),
901 sname("congruent"),
902 sname("Alpha"),
903 sname("Beta"),
904 sname("Chi"),
905 sname("Delta"),
906 sname("Epsilon"),
907 sname("Phi"),
908 sname("Gamma"),
909 sname("Eta"),
910 sname("Iota"),
911 sname("theta1"),
912 sname("Kappa"),
913 sname("Lambda"),
914 sname("Mu"),
915 sname("Nu"),
916 sname("Omicron"),
917 sname("Pi"),
918 sname("Theta"),
919 sname("Rho"),
920 sname("Sigma"),
921 sname("Tau"),
922 sname("Upsilon"),
923 sname("sigma1"),
924 sname("Omega"),
925 sname("Xi"),
926 sname("Psi"),
927 sname("Zeta"),
928 sname("bracketleft"),
929 sname("therefore"),
930 sname("bracketright"),
931 sname("perpendicular"),
932 sname("underscore"),
933 sname("radicalex"),
934 sname("alpha"),
935 sname("beta"),
936 sname("chi"),
937 sname("delta"),
938 sname("epsilon"),
939 sname("phi"),
940 sname("gamma"),
941 sname("eta"),
942 sname("iota"),
943 sname("phi1"),
944 sname("kappa"),
945 sname("lambda"),
946 sname("mu"),
947 sname("nu"),
948 sname("omicron"),
949 sname("pi"),
950 sname("theta"),
951 sname("rho"),
952 sname("sigma"),
953 sname("tau"),
954 sname("upsilon"),
955 sname("omega1"),
956 sname("omega"),
957 sname("xi"),
958 sname("psi"),
959 sname("zeta"),
960 sname("braceleft"),
961 sname("bar"),
962 sname("braceright"),
963 sname("similar"),
964 sname(".notdef"),
965 sname(".notdef"),
966 sname(".notdef"),
967 sname(".notdef"),
968 sname(".notdef"),
969 sname(".notdef"),
970 sname(".notdef"),
971 sname(".notdef"),
972 sname(".notdef"),
973 sname(".notdef"),
974 sname(".notdef"),
975 sname(".notdef"),
976 sname(".notdef"),
977 sname(".notdef"),
978 sname(".notdef"),
979 sname(".notdef"),
980 sname(".notdef"),
981 sname(".notdef"),
982 sname(".notdef"),
983 sname(".notdef"),
984 sname(".notdef"),
985 sname(".notdef"),
986 sname(".notdef"),
987 sname(".notdef"),
988 sname(".notdef"),
989 sname(".notdef"),
990 sname(".notdef"),
991 sname(".notdef"),
992 sname(".notdef"),
993 sname(".notdef"),
994 sname(".notdef"),
995 sname(".notdef"),
996 sname(".notdef"),
997 sname(".notdef"),
998 sname("Upsilon1"),
999 sname("minute"),
1000 sname("lessequal"),
1001 sname("fraction"),
1002 sname("infinity"),
1003 sname("florin"),
1004 sname("club"),
1005 sname("diamond"),
1006 sname("heart"),
1007 sname("spade"),
1008 sname("arrowboth"),
1009 sname("arrowleft"),
1010 sname("arrowup"),
1011 sname("arrowright"),
1012 sname("arrowdown"),
1013 sname("degree"),
1014 sname("plusminus"),
1015 sname("second"),
1016 sname("greaterequal"),
1017 sname("multiply"),
1018 sname("proportional"),
1019 sname("partialdiff"),
1020 sname("bullet"),
1021 sname("divide"),
1022 sname("notequal"),
1023 sname("equivalence"),
1024 sname("approxequal"),
1025 sname("ellipsis"),
1026 sname("arrowvertex"),
1027 sname("arrowhorizex"),
1028 sname("carriagereturn"),
1029 sname("aleph"),
1030 sname("Ifraktur"),
1031 sname("Rfraktur"),
1032 sname("weierstrass"),
1033 sname("circlemultiply"),
1034 sname("circleplus"),
1035 sname("emptyset"),
1036 sname("intersection"),
1037 sname("union"),
1038 sname("propersuperset"),
1039 sname("reflexsuperset"),
1040 sname("notsubset"),
1041 sname("propersubset"),
1042 sname("reflexsubset"),
1043 sname("element"),
1044 sname("notelement"),
1045 sname("angle"),
1046 sname("gradient"),
1047 sname("registerserif"),
1048 sname("copyrightserif"),
1049 sname("trademarkserif"),
1050 sname("product"),
1051 sname("radical"),
1052 sname("dotmath"),
1053 sname("logicalnot"),
1054 sname("logicaland"),
1055 sname("logicalor"),
1056 sname("arrowdblboth"),
1057 sname("arrowdblleft"),
1058 sname("arrowdblup"),
1059 sname("arrowdblright"),
1060 sname("arrowdbldown"),
1061 sname("lozenge"),
1062 sname("angleleft"),
1063 sname("registersans"),
1064 sname("copyrightsans"),
1065 sname("trademarksans"),
1066 sname("summation"),
1067 sname("parenlefttp"),
1068 sname("parenleftex"),
1069 sname("parenleftbt"),
1070 sname("bracketlefttp"),
1071 sname("bracketleftex"),
1072 sname("bracketleftbt"),
1073 sname("bracelefttp"),
1074 sname("braceleftmid"),
1075 sname("braceleftbt"),
1076 sname("braceex"),
1077 sname(".notdef"),
1078 sname("angleright"),
1079 sname("integral"),
1080 sname("integraltp"),
1081 sname("integralex"),
1082 sname("integralbt"),
1083 sname("parenrighttp"),
1084 sname("parenrightex"),
1085 sname("parenrightbt"),
1086 sname("bracketrighttp"),
1087 sname("bracketrightex"),
1088 sname("bracketrightbt"),
1089 sname("bracerighttp"),
1090 sname("bracerightmid"),
1091 sname("bracerightbt"),
1092 sname(".notdef"),
1093 ]);
1094 pub const WIN_ANSI: Self = Self([
1095 sname(".notdef"),
1096 sname(".notdef"),
1097 sname(".notdef"),
1098 sname(".notdef"),
1099 sname(".notdef"),
1100 sname(".notdef"),
1101 sname(".notdef"),
1102 sname(".notdef"),
1103 sname(".notdef"),
1104 sname(".notdef"),
1105 sname(".notdef"),
1106 sname(".notdef"),
1107 sname(".notdef"),
1108 sname(".notdef"),
1109 sname(".notdef"),
1110 sname(".notdef"),
1111 sname(".notdef"),
1112 sname(".notdef"),
1113 sname(".notdef"),
1114 sname(".notdef"),
1115 sname(".notdef"),
1116 sname(".notdef"),
1117 sname(".notdef"),
1118 sname(".notdef"),
1119 sname(".notdef"),
1120 sname(".notdef"),
1121 sname(".notdef"),
1122 sname(".notdef"),
1123 sname(".notdef"),
1124 sname(".notdef"),
1125 sname(".notdef"),
1126 sname(".notdef"),
1127 sname("space"),
1128 sname("exclam"),
1129 sname("quotedbl"),
1130 sname("numbersign"),
1131 sname("dollar"),
1132 sname("percent"),
1133 sname("ampersand"),
1134 sname("quotesingle"),
1135 sname("parenleft"),
1136 sname("parenright"),
1137 sname("asterisk"),
1138 sname("plus"),
1139 sname("comma"),
1140 sname("hyphen"),
1141 sname("period"),
1142 sname("slash"),
1143 sname("zero"),
1144 sname("one"),
1145 sname("two"),
1146 sname("three"),
1147 sname("four"),
1148 sname("five"),
1149 sname("six"),
1150 sname("seven"),
1151 sname("eight"),
1152 sname("nine"),
1153 sname("colon"),
1154 sname("semicolon"),
1155 sname("less"),
1156 sname("equal"),
1157 sname("greater"),
1158 sname("question"),
1159 sname("at"),
1160 sname("A"),
1161 sname("B"),
1162 sname("C"),
1163 sname("D"),
1164 sname("E"),
1165 sname("F"),
1166 sname("G"),
1167 sname("H"),
1168 sname("I"),
1169 sname("J"),
1170 sname("K"),
1171 sname("L"),
1172 sname("M"),
1173 sname("N"),
1174 sname("O"),
1175 sname("P"),
1176 sname("Q"),
1177 sname("R"),
1178 sname("S"),
1179 sname("T"),
1180 sname("U"),
1181 sname("V"),
1182 sname("W"),
1183 sname("X"),
1184 sname("Y"),
1185 sname("Z"),
1186 sname("bracketleft"),
1187 sname("backslash"),
1188 sname("bracketright"),
1189 sname("asciicircum"),
1190 sname("underscore"),
1191 sname("grave"),
1192 sname("a"),
1193 sname("b"),
1194 sname("c"),
1195 sname("d"),
1196 sname("e"),
1197 sname("f"),
1198 sname("g"),
1199 sname("h"),
1200 sname("i"),
1201 sname("j"),
1202 sname("k"),
1203 sname("l"),
1204 sname("m"),
1205 sname("n"),
1206 sname("o"),
1207 sname("p"),
1208 sname("q"),
1209 sname("r"),
1210 sname("s"),
1211 sname("t"),
1212 sname("u"),
1213 sname("v"),
1214 sname("w"),
1215 sname("x"),
1216 sname("y"),
1217 sname("z"),
1218 sname("braceleft"),
1219 sname("bar"),
1220 sname("braceright"),
1221 sname("asciitilde"),
1222 sname("bullet"),
1223 sname("Euro"),
1224 sname("bullet"),
1225 sname("quotesinglbase"),
1226 sname("florin"),
1227 sname("quotedblbase"),
1228 sname("ellipsis"),
1229 sname("dagger"),
1230 sname("daggerdbl"),
1231 sname("circumflex"),
1232 sname("perthousand"),
1233 sname("Scaron"),
1234 sname("guilsinglleft"),
1235 sname("OE"),
1236 sname("bullet"),
1237 sname("Zcaron"),
1238 sname("bullet"),
1239 sname("bullet"),
1240 sname("quoteleft"),
1241 sname("quoteright"),
1242 sname("quotedblleft"),
1243 sname("quotedblright"),
1244 sname("bullet"),
1245 sname("endash"),
1246 sname("emdash"),
1247 sname("tilde"),
1248 sname("trademark"),
1249 sname("scaron"),
1250 sname("guilsinglright"),
1251 sname("oe"),
1252 sname("bullet"),
1253 sname("zcaron"),
1254 sname("Ydieresis"),
1255 sname("space"),
1256 sname("exclamdown"),
1257 sname("cent"),
1258 sname("sterling"),
1259 sname("currency"),
1260 sname("yen"),
1261 sname("brokenbar"),
1262 sname("section"),
1263 sname("dieresis"),
1264 sname("copyright"),
1265 sname("ordfeminine"),
1266 sname("guillemotleft"),
1267 sname("logicalnot"),
1268 sname("hyphen"),
1269 sname("registered"),
1270 sname("macron"),
1271 sname("degree"),
1272 sname("plusminus"),
1273 sname("twosuperior"),
1274 sname("threesuperior"),
1275 sname("acute"),
1276 sname("mu"),
1277 sname("paragraph"),
1278 sname("periodcentered"),
1279 sname("cedilla"),
1280 sname("onesuperior"),
1281 sname("ordmasculine"),
1282 sname("guillemotright"),
1283 sname("onequarter"),
1284 sname("onehalf"),
1285 sname("threequarters"),
1286 sname("questiondown"),
1287 sname("Agrave"),
1288 sname("Aacute"),
1289 sname("Acircumflex"),
1290 sname("Atilde"),
1291 sname("Adieresis"),
1292 sname("Aring"),
1293 sname("AE"),
1294 sname("Ccedilla"),
1295 sname("Egrave"),
1296 sname("Eacute"),
1297 sname("Ecircumflex"),
1298 sname("Edieresis"),
1299 sname("Igrave"),
1300 sname("Iacute"),
1301 sname("Icircumflex"),
1302 sname("Idieresis"),
1303 sname("Eth"),
1304 sname("Ntilde"),
1305 sname("Ograve"),
1306 sname("Oacute"),
1307 sname("Ocircumflex"),
1308 sname("Otilde"),
1309 sname("Odieresis"),
1310 sname("multiply"),
1311 sname("Oslash"),
1312 sname("Ugrave"),
1313 sname("Uacute"),
1314 sname("Ucircumflex"),
1315 sname("Udieresis"),
1316 sname("Yacute"),
1317 sname("Thorn"),
1318 sname("germandbls"),
1319 sname("agrave"),
1320 sname("aacute"),
1321 sname("acircumflex"),
1322 sname("atilde"),
1323 sname("adieresis"),
1324 sname("aring"),
1325 sname("ae"),
1326 sname("ccedilla"),
1327 sname("egrave"),
1328 sname("eacute"),
1329 sname("ecircumflex"),
1330 sname("edieresis"),
1331 sname("igrave"),
1332 sname("iacute"),
1333 sname("icircumflex"),
1334 sname("idieresis"),
1335 sname("eth"),
1336 sname("ntilde"),
1337 sname("ograve"),
1338 sname("oacute"),
1339 sname("ocircumflex"),
1340 sname("otilde"),
1341 sname("odieresis"),
1342 sname("divide"),
1343 sname("oslash"),
1344 sname("ugrave"),
1345 sname("uacute"),
1346 sname("ucircumflex"),
1347 sname("udieresis"),
1348 sname("yacute"),
1349 sname("thorn"),
1350 sname("ydieresis"),
1351 ]);
1352 pub const ZAPFDINGBATS: Self = Self([
1353 sname(".notdef"),
1354 sname(".notdef"),
1355 sname(".notdef"),
1356 sname(".notdef"),
1357 sname(".notdef"),
1358 sname(".notdef"),
1359 sname(".notdef"),
1360 sname(".notdef"),
1361 sname(".notdef"),
1362 sname(".notdef"),
1363 sname(".notdef"),
1364 sname(".notdef"),
1365 sname(".notdef"),
1366 sname(".notdef"),
1367 sname(".notdef"),
1368 sname(".notdef"),
1369 sname(".notdef"),
1370 sname(".notdef"),
1371 sname(".notdef"),
1372 sname(".notdef"),
1373 sname(".notdef"),
1374 sname(".notdef"),
1375 sname(".notdef"),
1376 sname(".notdef"),
1377 sname(".notdef"),
1378 sname(".notdef"),
1379 sname(".notdef"),
1380 sname(".notdef"),
1381 sname(".notdef"),
1382 sname(".notdef"),
1383 sname(".notdef"),
1384 sname(".notdef"),
1385 sname("space"),
1386 sname("a1"),
1387 sname("a2"),
1388 sname("a202"),
1389 sname("a3"),
1390 sname("a4"),
1391 sname("a5"),
1392 sname("a119"),
1393 sname("a118"),
1394 sname("a117"),
1395 sname("a11"),
1396 sname("a12"),
1397 sname("a13"),
1398 sname("a14"),
1399 sname("a15"),
1400 sname("a16"),
1401 sname("a105"),
1402 sname("a17"),
1403 sname("a18"),
1404 sname("a19"),
1405 sname("a20"),
1406 sname("a21"),
1407 sname("a22"),
1408 sname("a23"),
1409 sname("a24"),
1410 sname("a25"),
1411 sname("a26"),
1412 sname("a27"),
1413 sname("a28"),
1414 sname("a6"),
1415 sname("a7"),
1416 sname("a8"),
1417 sname("a9"),
1418 sname("a10"),
1419 sname("a29"),
1420 sname("a30"),
1421 sname("a31"),
1422 sname("a32"),
1423 sname("a33"),
1424 sname("a34"),
1425 sname("a35"),
1426 sname("a36"),
1427 sname("a37"),
1428 sname("a38"),
1429 sname("a39"),
1430 sname("a40"),
1431 sname("a41"),
1432 sname("a42"),
1433 sname("a43"),
1434 sname("a44"),
1435 sname("a45"),
1436 sname("a46"),
1437 sname("a47"),
1438 sname("a48"),
1439 sname("a49"),
1440 sname("a50"),
1441 sname("a51"),
1442 sname("a52"),
1443 sname("a53"),
1444 sname("a54"),
1445 sname("a55"),
1446 sname("a56"),
1447 sname("a57"),
1448 sname("a58"),
1449 sname("a59"),
1450 sname("a60"),
1451 sname("a61"),
1452 sname("a62"),
1453 sname("a63"),
1454 sname("a64"),
1455 sname("a65"),
1456 sname("a66"),
1457 sname("a67"),
1458 sname("a68"),
1459 sname("a69"),
1460 sname("a70"),
1461 sname("a71"),
1462 sname("a72"),
1463 sname("a73"),
1464 sname("a74"),
1465 sname("a203"),
1466 sname("a75"),
1467 sname("a204"),
1468 sname("a76"),
1469 sname("a77"),
1470 sname("a78"),
1471 sname("a79"),
1472 sname("a81"),
1473 sname("a82"),
1474 sname("a83"),
1475 sname("a84"),
1476 sname("a97"),
1477 sname("a98"),
1478 sname("a99"),
1479 sname("a100"),
1480 sname(".notdef"),
1481 sname(".notdef"),
1482 sname(".notdef"),
1483 sname(".notdef"),
1484 sname(".notdef"),
1485 sname(".notdef"),
1486 sname(".notdef"),
1487 sname(".notdef"),
1488 sname(".notdef"),
1489 sname(".notdef"),
1490 sname(".notdef"),
1491 sname(".notdef"),
1492 sname(".notdef"),
1493 sname(".notdef"),
1494 sname(".notdef"),
1495 sname(".notdef"),
1496 sname(".notdef"),
1497 sname(".notdef"),
1498 sname(".notdef"),
1499 sname(".notdef"),
1500 sname(".notdef"),
1501 sname(".notdef"),
1502 sname(".notdef"),
1503 sname(".notdef"),
1504 sname(".notdef"),
1505 sname(".notdef"),
1506 sname(".notdef"),
1507 sname(".notdef"),
1508 sname(".notdef"),
1509 sname(".notdef"),
1510 sname(".notdef"),
1511 sname(".notdef"),
1512 sname(".notdef"),
1513 sname(".notdef"),
1514 sname("a101"),
1515 sname("a102"),
1516 sname("a103"),
1517 sname("a104"),
1518 sname("a106"),
1519 sname("a107"),
1520 sname("a108"),
1521 sname("a112"),
1522 sname("a111"),
1523 sname("a110"),
1524 sname("a109"),
1525 sname("a120"),
1526 sname("a121"),
1527 sname("a122"),
1528 sname("a123"),
1529 sname("a124"),
1530 sname("a125"),
1531 sname("a126"),
1532 sname("a127"),
1533 sname("a128"),
1534 sname("a129"),
1535 sname("a130"),
1536 sname("a131"),
1537 sname("a132"),
1538 sname("a133"),
1539 sname("a134"),
1540 sname("a135"),
1541 sname("a136"),
1542 sname("a137"),
1543 sname("a138"),
1544 sname("a139"),
1545 sname("a140"),
1546 sname("a141"),
1547 sname("a142"),
1548 sname("a143"),
1549 sname("a144"),
1550 sname("a145"),
1551 sname("a146"),
1552 sname("a147"),
1553 sname("a148"),
1554 sname("a149"),
1555 sname("a150"),
1556 sname("a151"),
1557 sname("a152"),
1558 sname("a153"),
1559 sname("a154"),
1560 sname("a155"),
1561 sname("a156"),
1562 sname("a157"),
1563 sname("a158"),
1564 sname("a159"),
1565 sname("a160"),
1566 sname("a161"),
1567 sname("a163"),
1568 sname("a164"),
1569 sname("a196"),
1570 sname("a165"),
1571 sname("a192"),
1572 sname("a166"),
1573 sname("a167"),
1574 sname("a168"),
1575 sname("a169"),
1576 sname("a170"),
1577 sname("a171"),
1578 sname("a172"),
1579 sname("a173"),
1580 sname("a162"),
1581 sname("a174"),
1582 sname("a175"),
1583 sname("a176"),
1584 sname("a177"),
1585 sname("a178"),
1586 sname("a179"),
1587 sname("a193"),
1588 sname("a180"),
1589 sname("a199"),
1590 sname("a181"),
1591 sname("a200"),
1592 sname("a182"),
1593 sname(".notdef"),
1594 sname("a201"),
1595 sname("a183"),
1596 sname("a184"),
1597 sname("a197"),
1598 sname("a185"),
1599 sname("a194"),
1600 sname("a198"),
1601 sname("a186"),
1602 sname("a195"),
1603 sname("a187"),
1604 sname("a188"),
1605 sname("a189"),
1606 sname("a190"),
1607 sname("a191"),
1608 sname(".notdef"),
1609 ]);
1610}