1macro_rules! xhtml {
2 (
3 $(
4 $i:ident : $s:expr,
5 )*
6 ) => {
7 pub(super) fn xhtml(s: &str) -> Option<char> {
8 match s{
9 $(stringify!($i) => Some($s),)*
10 _ => None,
11 }
12 }
13 };
14}
15
16xhtml!(
17 quot: '\u{0022}',
18 amp: '&',
19 apos: '\u{0027}',
20 lt: '<',
21 gt: '>',
22 nbsp: '\u{00A0}',
23 iexcl: '\u{00A1}',
24 cent: '\u{00A2}',
25 pound: '\u{00A3}',
26 curren: '\u{00A4}',
27 yen: '\u{00A5}',
28 brvbar: '\u{00A6}',
29 sect: '\u{00A7}',
30 uml: '\u{00A8}',
31 copy: '\u{00A9}',
32 ordf: '\u{00AA}',
33 laquo: '\u{00AB}',
34 not: '\u{00AC}',
35 shy: '\u{00AD}',
36 reg: '\u{00AE}',
37 macr: '\u{00AF}',
38 deg: '\u{00B0}',
39 plusmn: '\u{00B1}',
40 sup2: '\u{00B2}',
41 sup3: '\u{00B3}',
42 acute: '\u{00B4}',
43 micro: '\u{00B5}',
44 para: '\u{00B6}',
45 middot: '\u{00B7}',
46 cedil: '\u{00B8}',
47 sup1: '\u{00B9}',
48 ordm: '\u{00BA}',
49 raquo: '\u{00BB}',
50 frac14: '\u{00BC}',
51 frac12: '\u{00BD}',
52 frac34: '\u{00BE}',
53 iquest: '\u{00BF}',
54 Agrave: '\u{00C0}',
55 Aacute: '\u{00C1}',
56 Acirc: '\u{00C2}',
57 Atilde: '\u{00C3}',
58 Auml: '\u{00C4}',
59 Aring: '\u{00C5}',
60 AElig: '\u{00C6}',
61 Ccedil: '\u{00C7}',
62 Egrave: '\u{00C8}',
63 Eacute: '\u{00C9}',
64 Ecirc: '\u{00CA}',
65 Euml: '\u{00CB}',
66 Igrave: '\u{00CC}',
67 Iacute: '\u{00CD}',
68 Icirc: '\u{00CE}',
69 Iuml: '\u{00CF}',
70 ETH: '\u{00D0}',
71 Ntilde: '\u{00D1}',
72 Ograve: '\u{00D2}',
73 Oacute: '\u{00D3}',
74 Ocirc: '\u{00D4}',
75 Otilde: '\u{00D5}',
76 Ouml: '\u{00D6}',
77 times: '\u{00D7}',
78 Oslash: '\u{00D8}',
79 Ugrave: '\u{00D9}',
80 Uacute: '\u{00DA}',
81 Ucirc: '\u{00DB}',
82 Uuml: '\u{00DC}',
83 Yacute: '\u{00DD}',
84 THORN: '\u{00DE}',
85 szlig: '\u{00DF}',
86 agrave: '\u{00E0}',
87 aacute: '\u{00E1}',
88 acirc: '\u{00E2}',
89 atilde: '\u{00E3}',
90 auml: '\u{00E4}',
91 aring: '\u{00E5}',
92 aelig: '\u{00E6}',
93 ccedil: '\u{00E7}',
94 egrave: '\u{00E8}',
95 eacute: '\u{00E9}',
96 ecirc: '\u{00EA}',
97 euml: '\u{00EB}',
98 igrave: '\u{00EC}',
99 iacute: '\u{00ED}',
100 icirc: '\u{00EE}',
101 iuml: '\u{00EF}',
102 eth: '\u{00F0}',
103 ntilde: '\u{00F1}',
104 ograve: '\u{00F2}',
105 oacute: '\u{00F3}',
106 ocirc: '\u{00F4}',
107 otilde: '\u{00F5}',
108 ouml: '\u{00F6}',
109 divide: '\u{00F7}',
110 oslash: '\u{00F8}',
111 ugrave: '\u{00F9}',
112 uacute: '\u{00FA}',
113 ucirc: '\u{00FB}',
114 uuml: '\u{00FC}',
115 yacute: '\u{00FD}',
116 thorn: '\u{00FE}',
117 yuml: '\u{00FF}',
118 OElig: '\u{0152}',
119 oelig: '\u{0153}',
120 Scaron: '\u{0160}',
121 scaron: '\u{0161}',
122 Yuml: '\u{0178}',
123 fnof: '\u{0192}',
124 circ: '\u{02C6}',
125 tilde: '\u{02DC}',
126 Alpha: '\u{0391}',
127 Beta: '\u{0392}',
128 Gamma: '\u{0393}',
129 Delta: '\u{0394}',
130 Epsilon: '\u{0395}',
131 Zeta: '\u{0396}',
132 Eta: '\u{0397}',
133 Theta: '\u{0398}',
134 Iota: '\u{0399}',
135 Kappa: '\u{039A}',
136 Lambda: '\u{039B}',
137 Mu: '\u{039C}',
138 Nu: '\u{039D}',
139 Xi: '\u{039E}',
140 Omicron: '\u{039F}',
141 Pi: '\u{03A0}',
142 Rho: '\u{03A1}',
143 Sigma: '\u{03A3}',
144 Tau: '\u{03A4}',
145 Upsilon: '\u{03A5}',
146 Phi: '\u{03A6}',
147 Chi: '\u{03A7}',
148 Psi: '\u{03A8}',
149 Omega: '\u{03A9}',
150 alpha: '\u{03B1}',
151 beta: '\u{03B2}',
152 gamma: '\u{03B3}',
153 delta: '\u{03B4}',
154 epsilon: '\u{03B5}',
155 zeta: '\u{03B6}',
156 eta: '\u{03B7}',
157 theta: '\u{03B8}',
158 iota: '\u{03B9}',
159 kappa: '\u{03BA}',
160 lambda: '\u{03BB}',
161 mu: '\u{03BC}',
162 nu: '\u{03BD}',
163 xi: '\u{03BE}',
164 omicron: '\u{03BF}',
165 pi: '\u{03C0}',
166 rho: '\u{03C1}',
167 sigmaf: '\u{03C2}',
168 sigma: '\u{03C3}',
169 tau: '\u{03C4}',
170 upsilon: '\u{03C5}',
171 phi: '\u{03C6}',
172 chi: '\u{03C7}',
173 psi: '\u{03C8}',
174 omega: '\u{03C9}',
175 thetasym: '\u{03D1}',
176 upsih: '\u{03D2}',
177 piv: '\u{03D6}',
178 ensp: '\u{2002}',
179 emsp: '\u{2003}',
180 thinsp: '\u{2009}',
181 zwnj: '\u{200C}',
182 zwj: '\u{200D}',
183 lrm: '\u{200E}',
184 rlm: '\u{200F}',
185 ndash: '\u{2013}',
186 mdash: '\u{2014}',
187 lsquo: '\u{2018}',
188 rsquo: '\u{2019}',
189 sbquo: '\u{201A}',
190 ldquo: '\u{201C}',
191 rdquo: '\u{201D}',
192 bdquo: '\u{201E}',
193 dagger: '\u{2020}',
194 Dagger: '\u{2021}',
195 bull: '\u{2022}',
196 hellip: '\u{2026}',
197 permil: '\u{2030}',
198 prime: '\u{2032}',
199 Prime: '\u{2033}',
200 lsaquo: '\u{2039}',
201 rsaquo: '\u{203A}',
202 oline: '\u{203E}',
203 frasl: '\u{2044}',
204 euro: '\u{20AC}',
205 image: '\u{2111}',
206 weierp: '\u{2118}',
207 real: '\u{211C}',
208 trade: '\u{2122}',
209 alefsym: '\u{2135}',
210 larr: '\u{2190}',
211 uarr: '\u{2191}',
212 rarr: '\u{2192}',
213 darr: '\u{2193}',
214 harr: '\u{2194}',
215 crarr: '\u{21B5}',
216 lArr: '\u{21D0}',
217 uArr: '\u{21D1}',
218 rArr: '\u{21D2}',
219 dArr: '\u{21D3}',
220 hArr: '\u{21D4}',
221 forall: '\u{2200}',
222 part: '\u{2202}',
223 exist: '\u{2203}',
224 empty: '\u{2205}',
225 nabla: '\u{2207}',
226 isin: '\u{2208}',
227 notin: '\u{2209}',
228 ni: '\u{220B}',
229 prod: '\u{220F}',
230 sum: '\u{2211}',
231 minus: '\u{2212}',
232 lowast: '\u{2217}',
233 radic: '\u{221A}',
234 prop: '\u{221D}',
235 infin: '\u{221E}',
236 ang: '\u{2220}',
237 and: '\u{2227}',
238 or: '\u{2228}',
239 cap: '\u{2229}',
240 cup: '\u{222A}',
241 int: '\u{222B}',
242 there4: '\u{2234}',
243 sim: '\u{223C}',
244 cong: '\u{2245}',
245 asymp: '\u{2248}',
246 ne: '\u{2260}',
247 equiv: '\u{2261}',
248 le: '\u{2264}',
249 ge: '\u{2265}',
250 sub: '\u{2282}',
251 sup: '\u{2283}',
252 nsub: '\u{2284}',
253 sube: '\u{2286}',
254 supe: '\u{2287}',
255 oplus: '\u{2295}',
256 otimes: '\u{2297}',
257 perp: '\u{22A5}',
258 sdot: '\u{22C5}',
259 lceil: '\u{2308}',
260 rceil: '\u{2309}',
261 lfloor: '\u{230A}',
262 rfloor: '\u{230B}',
263 lang: '\u{2329}',
264 rang: '\u{232A}',
265 loz: '\u{25CA}',
266 spades: '\u{2660}',
267 clubs: '\u{2663}',
268 hearts: '\u{2665}',
269 diams: '\u{2666}',
270);