#![deny(missing_docs)]
pub fn is_macroman(chr: char) -> bool {
char_to_macroman(chr).is_some()
}
#[rustfmt::skip]
pub fn char_to_macroman(chr: char) -> Option<u8> {
if (chr as u32) < 0x7F {
Some(chr as u8)
} else {
match chr {
'Ä' => Some(128),
'Å' => Some(129),
'Ç' => Some(130),
'É' => Some(131),
'Ñ' => Some(132),
'Ö' => Some(133),
'Ü' => Some(134),
'á' => Some(135),
'à' => Some(136),
'â' => Some(137),
'ä' => Some(138),
'ã' => Some(139),
'å' => Some(140),
'ç' => Some(141),
'é' => Some(142),
'è' => Some(143),
'ê' => Some(144),
'ë' => Some(145),
'í' => Some(146),
'ì' => Some(147),
'î' => Some(148),
'ï' => Some(149),
'ñ' => Some(150),
'ó' => Some(151),
'ò' => Some(152),
'ô' => Some(153),
'ö' => Some(154),
'õ' => Some(155),
'ú' => Some(156),
'ù' => Some(157),
'û' => Some(158),
'ü' => Some(159),
'†' => Some(160),
'°' => Some(161),
'¢' => Some(162),
'£' => Some(163),
'§' => Some(164),
'•' => Some(165),
'¶' => Some(166),
'ß' => Some(167),
'®' => Some(168),
'©' => Some(169),
'™' => Some(170),
'´' => Some(171),
'¨' => Some(172),
'Æ' => Some(174),
'Ø' => Some(175),
'±' => Some(177),
'¥' => Some(180),
'µ' => Some(181),
'ª' => Some(187),
'º' => Some(188),
'æ' => Some(190),
'ø' => Some(191),
'¿' => Some(192),
'¡' => Some(193),
'¬' => Some(194),
'ƒ' => Some(196),
'«' => Some(199),
'»' => Some(200),
'…' => Some(201),
' ' => Some(202),
'À' => Some(203),
'Ã' => Some(204),
'Õ' => Some(205),
'Œ' => Some(206),
'œ' => Some(207),
'–' => Some(208),
'—' => Some(209),
'“' => Some(210),
'”' => Some(211),
'‘' => Some(212),
'’' => Some(213),
'÷' => Some(214),
'ÿ' => Some(216),
'Ÿ' => Some(217),
'⁄' => Some(218),
'¤' => Some(219),
'‹' => Some(220),
'›' => Some(221),
'fi' => Some(222),
'fl' => Some(223),
'‡' => Some(224),
'·' => Some(225),
'‚' => Some(226),
'„' => Some(227),
'‰' => Some(228),
'Â' => Some(229),
'Ê' => Some(230),
'Á' => Some(231),
'Ë' => Some(232),
'È' => Some(233),
'Í' => Some(234),
'Î' => Some(235),
'Ï' => Some(236),
'Ì' => Some(237),
'Ó' => Some(238),
'Ô' => Some(239),
'Ò' => Some(241),
'Ú' => Some(242),
'Û' => Some(243),
'Ù' => Some(244),
'ı' => Some(245),
'^' => Some(246),
'˜' => Some(247),
'¯' => Some(248),
'˘' => Some(249),
'˙' => Some(250),
'˚' => Some(251),
'¸' => Some(252),
'˝' => Some(253),
'˛' => Some(254),
'ˇ' => Some(255),
_ => None,
}
}
}
#[rustfmt::skip]
pub fn macroman_to_char(macroman: u8) -> Option<char> {
match macroman {
0..=127 => Some(macroman as char),
128 => Some('Ä'),
129 => Some('Å'),
130 => Some('Ç'),
131 => Some('É'),
132 => Some('Ñ'),
133 => Some('Ö'),
134 => Some('Ü'),
135 => Some('á'),
136 => Some('à'),
137 => Some('â'),
138 => Some('ä'),
139 => Some('ã'),
140 => Some('å'),
141 => Some('ç'),
142 => Some('é'),
143 => Some('è'),
144 => Some('ê'),
145 => Some('ë'),
146 => Some('í'),
147 => Some('ì'),
148 => Some('î'),
149 => Some('ï'),
150 => Some('ñ'),
151 => Some('ó'),
152 => Some('ò'),
153 => Some('ô'),
154 => Some('ö'),
155 => Some('õ'),
156 => Some('ú'),
157 => Some('ù'),
158 => Some('û'),
159 => Some('ü'),
160 => Some('†'),
161 => Some('°'),
162 => Some('¢'),
163 => Some('£'),
164 => Some('§'),
165 => Some('•'),
166 => Some('¶'),
167 => Some('ß'),
168 => Some('®'),
169 => Some('©'),
170 => Some('™'),
171 => Some('´'),
172 => Some('¨'),
174 => Some('Æ'),
175 => Some('Ø'),
177 => Some('±'),
180 => Some('¥'),
181 => Some('µ'),
187 => Some('ª'),
188 => Some('º'),
190 => Some('æ'),
191 => Some('ø'),
192 => Some('¿'),
193 => Some('¡'),
194 => Some('¬'),
196 => Some('ƒ'),
199 => Some('«'),
200 => Some('»'),
201 => Some('…'),
202 => Some(' '),
203 => Some('À'),
204 => Some('Ã'),
205 => Some('Õ'),
206 => Some('Œ'),
207 => Some('œ'),
208 => Some('–'),
209 => Some('—'),
210 => Some('“'),
211 => Some('”'),
212 => Some('‘'),
213 => Some('’'),
214 => Some('÷'),
216 => Some('ÿ'),
217 => Some('Ÿ'),
218 => Some('⁄'),
219 => Some('¤'),
220 => Some('‹'),
221 => Some('›'),
222 => Some('fi'),
223 => Some('fl'),
224 => Some('‡'),
225 => Some('·'),
226 => Some('‚'),
227 => Some('„'),
228 => Some('‰'),
229 => Some('Â'),
230 => Some('Ê'),
231 => Some('Á'),
232 => Some('Ë'),
233 => Some('È'),
234 => Some('Í'),
235 => Some('Î'),
236 => Some('Ï'),
237 => Some('Ì'),
238 => Some('Ó'),
239 => Some('Ô'),
241 => Some('Ò'),
242 => Some('Ú'),
243 => Some('Û'),
244 => Some('Ù'),
245 => Some('ı'),
246 => Some('^'),
247 => Some('˜'),
248 => Some('¯'),
249 => Some('˘'),
250 => Some('˙'),
251 => Some('˚'),
252 => Some('¸'),
253 => Some('˝'),
254 => Some('˛'),
255 => Some('ˇ'),
_ => None,
}
}