1#[derive(Clone, Copy, Debug, PartialEq)]
10pub enum UnicodeBlock {
11 BasicLatin,
12 Latin1Supplement,
13 LatinExtendedA,
14 LatinExtendedB,
15 IPAExtensions,
16 SpacingModifierLetters,
17 CombiningDiacriticalMarks,
18 GreekandCoptic,
19 Cyrillic,
20 CyrillicSupplement,
21 Armenian,
22 Hebrew,
23 Arabic,
24 Syriac,
25 ArabicSupplement,
26 Thaana,
27 NKo,
28 Samaritan,
29 Mandaic,
30 SyriacSupplement,
31 ArabicExtendedB,
32 ArabicExtendedA,
33 Devanagari,
34 Bengali,
35 Gurmukhi,
36 Gujarati,
37 Oriya,
38 Tamil,
39 Telugu,
40 Kannada,
41 Malayalam,
42 Sinhala,
43 Thai,
44 Lao,
45 Tibetan,
46 Myanmar,
47 Georgian,
48 HangulJamo,
49 Ethiopic,
50 EthiopicSupplement,
51 Cherokee,
52 UnifiedCanadianAboriginalSyllabics,
53 Ogham,
54 Runic,
55 Tagalog,
56 Hanunoo,
57 Buhid,
58 Tagbanwa,
59 Khmer,
60 Mongolian,
61 UnifiedCanadianAboriginalSyllabicsExtended,
62 Limbu,
63 TaiLe,
64 NewTaiLue,
65 KhmerSymbols,
66 Buginese,
67 TaiTham,
68 CombiningDiacriticalMarksExtended,
69 Balinese,
70 Sundanese,
71 Batak,
72 Lepcha,
73 OlChiki,
74 CyrillicExtendedC,
75 GeorgianExtended,
76 SundaneseSupplement,
77 VedicExtensions,
78 PhoneticExtensions,
79 PhoneticExtensionsSupplement,
80 CombiningDiacriticalMarksSupplement,
81 LatinExtendedAdditional,
82 GreekExtended,
83 GeneralPunctuation,
84 SuperscriptsandSubscripts,
85 CurrencySymbols,
86 CombiningDiacriticalMarksforSymbols,
87 LetterlikeSymbols,
88 NumberForms,
89 Arrows,
90 MathematicalOperators,
91 MiscellaneousTechnical,
92 ControlPictures,
93 OpticalCharacterRecognition,
94 EnclosedAlphanumerics,
95 BoxDrawing,
96 BlockElements,
97 GeometricShapes,
98 MiscellaneousSymbols,
99 Dingbats,
100 MiscellaneousMathematicalSymbolsA,
101 SupplementalArrowsA,
102 BraillePatterns,
103 SupplementalArrowsB,
104 MiscellaneousMathematicalSymbolsB,
105 SupplementalMathematicalOperators,
106 MiscellaneousSymbolsandArrows,
107 Glagolitic,
108 LatinExtendedC,
109 Coptic,
110 GeorgianSupplement,
111 Tifinagh,
112 EthiopicExtended,
113 CyrillicExtendedA,
114 SupplementalPunctuation,
115 CJKRadicalsSupplement,
116 KangxiRadicals,
117 IdeographicDescriptionCharacters,
118 CJKSymbolsandPunctuation,
119 Hiragana,
120 Katakana,
121 Bopomofo,
122 HangulCompatibilityJamo,
123 Kanbun,
124 BopomofoExtended,
125 CJKStrokes,
126 KatakanaPhoneticExtensions,
127 EnclosedCJKLettersandMonths,
128 CJKCompatibility,
129 CJKUnifiedIdeographsExtensionA,
130 YijingHexagramSymbols,
131 CJKUnifiedIdeographs,
132 YiSyllables,
133 YiRadicals,
134 Lisu,
135 Vai,
136 CyrillicExtendedB,
137 Bamum,
138 ModifierToneLetters,
139 LatinExtendedD,
140 SylotiNagri,
141 CommonIndicNumberForms,
142 Phagspa,
143 Saurashtra,
144 DevanagariExtended,
145 KayahLi,
146 Rejang,
147 HangulJamoExtendedA,
148 Javanese,
149 MyanmarExtendedB,
150 Cham,
151 MyanmarExtendedA,
152 TaiViet,
153 MeeteiMayekExtensions,
154 EthiopicExtendedA,
155 LatinExtendedE,
156 CherokeeSupplement,
157 MeeteiMayek,
158 HangulSyllables,
159 HangulJamoExtendedB,
160 HighSurrogates,
161 HighPrivateUseSurrogates,
162 LowSurrogates,
163 PrivateUseArea,
164 CJKCompatibilityIdeographs,
165 AlphabeticPresentationForms,
166 ArabicPresentationFormsA,
167 VariationSelectors,
168 VerticalForms,
169 CombiningHalfMarks,
170 CJKCompatibilityForms,
171 SmallFormVariants,
172 ArabicPresentationFormsB,
173 HalfwidthandFullwidthForms,
174 Specials,
175 LinearBSyllabary,
176 LinearBIdeograms,
177 AegeanNumbers,
178 AncientGreekNumbers,
179 AncientSymbols,
180 PhaistosDisc,
181 Lycian,
182 Carian,
183 CopticEpactNumbers,
184 OldItalic,
185 Gothic,
186 OldPermic,
187 Ugaritic,
188 OldPersian,
189 Deseret,
190 Shavian,
191 Osmanya,
192 Osage,
193 Elbasan,
194 CaucasianAlbanian,
195 Vithkuqi,
196 LinearA,
197 LatinExtendedF,
198 CypriotSyllabary,
199 ImperialAramaic,
200 Palmyrene,
201 Nabataean,
202 Hatran,
203 Phoenician,
204 Lydian,
205 MeroiticHieroglyphs,
206 MeroiticCursive,
207 Kharoshthi,
208 OldSouthArabian,
209 OldNorthArabian,
210 Manichaean,
211 Avestan,
212 InscriptionalParthian,
213 InscriptionalPahlavi,
214 PsalterPahlavi,
215 OldTurkic,
216 OldHungarian,
217 HanifiRohingya,
218 RumiNumeralSymbols,
219 Yezidi,
220 ArabicExtendedC,
221 OldSogdian,
222 Sogdian,
223 OldUyghur,
224 Chorasmian,
225 Elymaic,
226 Brahmi,
227 Kaithi,
228 SoraSompeng,
229 Chakma,
230 Mahajani,
231 Sharada,
232 SinhalaArchaicNumbers,
233 Khojki,
234 Multani,
235 Khudawadi,
236 Grantha,
237 Newa,
238 Tirhuta,
239 Siddham,
240 Modi,
241 MongolianSupplement,
242 Takri,
243 Ahom,
244 Dogra,
245 WarangCiti,
246 DivesAkuru,
247 Nandinagari,
248 ZanabazarSquare,
249 Soyombo,
250 UnifiedCanadianAboriginalSyllabicsExtendedA,
251 PauCinHau,
252 DevanagariExtendedA,
253 Bhaiksuki,
254 Marchen,
255 MasaramGondi,
256 GunjalaGondi,
257 Makasar,
258 Kawi,
259 LisuSupplement,
260 TamilSupplement,
261 Cuneiform,
262 CuneiformNumbersandPunctuation,
263 EarlyDynasticCuneiform,
264 CyproMinoan,
265 EgyptianHieroglyphs,
266 EgyptianHieroglyphFormatControls,
267 AnatolianHieroglyphs,
268 BamumSupplement,
269 Mro,
270 Tangsa,
271 BassaVah,
272 PahawhHmong,
273 Medefaidrin,
274 Miao,
275 IdeographicSymbolsandPunctuation,
276 Tangut,
277 TangutComponents,
278 KhitanSmallScript,
279 TangutSupplement,
280 KanaExtendedB,
281 KanaSupplement,
282 KanaExtendedA,
283 SmallKanaExtension,
284 Nushu,
285 Duployan,
286 ShorthandFormatControls,
287 ZnamennyMusicalNotation,
288 ByzantineMusicalSymbols,
289 MusicalSymbols,
290 AncientGreekMusicalNotation,
291 KaktovikNumerals,
292 MayanNumerals,
293 TaiXuanJingSymbols,
294 CountingRodNumerals,
295 MathematicalAlphanumericSymbols,
296 SuttonSignWriting,
297 LatinExtendedG,
298 GlagoliticSupplement,
299 CyrillicExtendedD,
300 NyiakengPuachueHmong,
301 Toto,
302 Wancho,
303 NagMundari,
304 EthiopicExtendedB,
305 MendeKikakui,
306 Adlam,
307 IndicSiyaqNumbers,
308 OttomanSiyaqNumbers,
309 ArabicMathematicalAlphabeticSymbols,
310 MahjongTiles,
311 DominoTiles,
312 PlayingCards,
313 EnclosedAlphanumericSupplement,
314 EnclosedIdeographicSupplement,
315 MiscellaneousSymbolsandPictographs,
316 Emoticons,
317 OrnamentalDingbats,
318 TransportandMapSymbols,
319 AlchemicalSymbols,
320 GeometricShapesExtended,
321 SupplementalArrowsC,
322 SupplementalSymbolsandPictographs,
323 ChessSymbols,
324 SymbolsandPictographsExtendedA,
325 SymbolsforLegacyComputing,
326 CJKUnifiedIdeographsExtensionB,
327 CJKUnifiedIdeographsExtensionC,
328 CJKUnifiedIdeographsExtensionD,
329 CJKUnifiedIdeographsExtensionE,
330 CJKUnifiedIdeographsExtensionF,
331 CJKUnifiedIdeographsExtensionI,
332 CJKCompatibilityIdeographsSupplement,
333 CJKUnifiedIdeographsExtensionG,
334 CJKUnifiedIdeographsExtensionH,
335 Tags,
336 VariationSelectorsSupplement,
337 SupplementaryPrivateUseAreaA,
338 SupplementaryPrivateUseAreaB,
339}
340
341pub trait UnicodeBlockMethod {
342 fn block(&self) -> Option<UnicodeBlock>;
343}
344
345impl UnicodeBlockMethod for char {
346 fn block(&self) -> Option<UnicodeBlock> {
347 match *self as u32 {
348 0x000000..=0x00007F => Some(UnicodeBlock::BasicLatin),
349 0x000080..=0x0000FF => Some(UnicodeBlock::Latin1Supplement),
350 0x000100..=0x00017F => Some(UnicodeBlock::LatinExtendedA),
351 0x000180..=0x00024F => Some(UnicodeBlock::LatinExtendedB),
352 0x000250..=0x0002AF => Some(UnicodeBlock::IPAExtensions),
353 0x0002B0..=0x0002FF => Some(UnicodeBlock::SpacingModifierLetters),
354 0x000300..=0x00036F => Some(UnicodeBlock::CombiningDiacriticalMarks),
355 0x000370..=0x0003FF => Some(UnicodeBlock::GreekandCoptic),
356 0x000400..=0x0004FF => Some(UnicodeBlock::Cyrillic),
357 0x000500..=0x00052F => Some(UnicodeBlock::CyrillicSupplement),
358 0x000530..=0x00058F => Some(UnicodeBlock::Armenian),
359 0x000590..=0x0005FF => Some(UnicodeBlock::Hebrew),
360 0x000600..=0x0006FF => Some(UnicodeBlock::Arabic),
361 0x000700..=0x00074F => Some(UnicodeBlock::Syriac),
362 0x000750..=0x00077F => Some(UnicodeBlock::ArabicSupplement),
363 0x000780..=0x0007BF => Some(UnicodeBlock::Thaana),
364 0x0007C0..=0x0007FF => Some(UnicodeBlock::NKo),
365 0x000800..=0x00083F => Some(UnicodeBlock::Samaritan),
366 0x000840..=0x00085F => Some(UnicodeBlock::Mandaic),
367 0x000860..=0x00086F => Some(UnicodeBlock::SyriacSupplement),
368 0x000870..=0x00089F => Some(UnicodeBlock::ArabicExtendedB),
369 0x0008A0..=0x0008FF => Some(UnicodeBlock::ArabicExtendedA),
370 0x000900..=0x00097F => Some(UnicodeBlock::Devanagari),
371 0x000980..=0x0009FF => Some(UnicodeBlock::Bengali),
372 0x000A00..=0x000A7F => Some(UnicodeBlock::Gurmukhi),
373 0x000A80..=0x000AFF => Some(UnicodeBlock::Gujarati),
374 0x000B00..=0x000B7F => Some(UnicodeBlock::Oriya),
375 0x000B80..=0x000BFF => Some(UnicodeBlock::Tamil),
376 0x000C00..=0x000C7F => Some(UnicodeBlock::Telugu),
377 0x000C80..=0x000CFF => Some(UnicodeBlock::Kannada),
378 0x000D00..=0x000D7F => Some(UnicodeBlock::Malayalam),
379 0x000D80..=0x000DFF => Some(UnicodeBlock::Sinhala),
380 0x000E00..=0x000E7F => Some(UnicodeBlock::Thai),
381 0x000E80..=0x000EFF => Some(UnicodeBlock::Lao),
382 0x000F00..=0x000FFF => Some(UnicodeBlock::Tibetan),
383 0x001000..=0x00109F => Some(UnicodeBlock::Myanmar),
384 0x0010A0..=0x0010FF => Some(UnicodeBlock::Georgian),
385 0x001100..=0x0011FF => Some(UnicodeBlock::HangulJamo),
386 0x001200..=0x00137F => Some(UnicodeBlock::Ethiopic),
387 0x001380..=0x00139F => Some(UnicodeBlock::EthiopicSupplement),
388 0x0013A0..=0x0013FF => Some(UnicodeBlock::Cherokee),
389 0x001400..=0x00167F => Some(UnicodeBlock::UnifiedCanadianAboriginalSyllabics),
390 0x001680..=0x00169F => Some(UnicodeBlock::Ogham),
391 0x0016A0..=0x0016FF => Some(UnicodeBlock::Runic),
392 0x001700..=0x00171F => Some(UnicodeBlock::Tagalog),
393 0x001720..=0x00173F => Some(UnicodeBlock::Hanunoo),
394 0x001740..=0x00175F => Some(UnicodeBlock::Buhid),
395 0x001760..=0x00177F => Some(UnicodeBlock::Tagbanwa),
396 0x001780..=0x0017FF => Some(UnicodeBlock::Khmer),
397 0x001800..=0x0018AF => Some(UnicodeBlock::Mongolian),
398 0x0018B0..=0x0018FF => Some(UnicodeBlock::UnifiedCanadianAboriginalSyllabicsExtended),
399 0x001900..=0x00194F => Some(UnicodeBlock::Limbu),
400 0x001950..=0x00197F => Some(UnicodeBlock::TaiLe),
401 0x001980..=0x0019DF => Some(UnicodeBlock::NewTaiLue),
402 0x0019E0..=0x0019FF => Some(UnicodeBlock::KhmerSymbols),
403 0x001A00..=0x001A1F => Some(UnicodeBlock::Buginese),
404 0x001A20..=0x001AAF => Some(UnicodeBlock::TaiTham),
405 0x001AB0..=0x001AFF => Some(UnicodeBlock::CombiningDiacriticalMarksExtended),
406 0x001B00..=0x001B7F => Some(UnicodeBlock::Balinese),
407 0x001B80..=0x001BBF => Some(UnicodeBlock::Sundanese),
408 0x001BC0..=0x001BFF => Some(UnicodeBlock::Batak),
409 0x001C00..=0x001C4F => Some(UnicodeBlock::Lepcha),
410 0x001C50..=0x001C7F => Some(UnicodeBlock::OlChiki),
411 0x001C80..=0x001C8F => Some(UnicodeBlock::CyrillicExtendedC),
412 0x001C90..=0x001CBF => Some(UnicodeBlock::GeorgianExtended),
413 0x001CC0..=0x001CCF => Some(UnicodeBlock::SundaneseSupplement),
414 0x001CD0..=0x001CFF => Some(UnicodeBlock::VedicExtensions),
415 0x001D00..=0x001D7F => Some(UnicodeBlock::PhoneticExtensions),
416 0x001D80..=0x001DBF => Some(UnicodeBlock::PhoneticExtensionsSupplement),
417 0x001DC0..=0x001DFF => Some(UnicodeBlock::CombiningDiacriticalMarksSupplement),
418 0x001E00..=0x001EFF => Some(UnicodeBlock::LatinExtendedAdditional),
419 0x001F00..=0x001FFF => Some(UnicodeBlock::GreekExtended),
420 0x002000..=0x00206F => Some(UnicodeBlock::GeneralPunctuation),
421 0x002070..=0x00209F => Some(UnicodeBlock::SuperscriptsandSubscripts),
422 0x0020A0..=0x0020CF => Some(UnicodeBlock::CurrencySymbols),
423 0x0020D0..=0x0020FF => Some(UnicodeBlock::CombiningDiacriticalMarksforSymbols),
424 0x002100..=0x00214F => Some(UnicodeBlock::LetterlikeSymbols),
425 0x002150..=0x00218F => Some(UnicodeBlock::NumberForms),
426 0x002190..=0x0021FF => Some(UnicodeBlock::Arrows),
427 0x002200..=0x0022FF => Some(UnicodeBlock::MathematicalOperators),
428 0x002300..=0x0023FF => Some(UnicodeBlock::MiscellaneousTechnical),
429 0x002400..=0x00243F => Some(UnicodeBlock::ControlPictures),
430 0x002440..=0x00245F => Some(UnicodeBlock::OpticalCharacterRecognition),
431 0x002460..=0x0024FF => Some(UnicodeBlock::EnclosedAlphanumerics),
432 0x002500..=0x00257F => Some(UnicodeBlock::BoxDrawing),
433 0x002580..=0x00259F => Some(UnicodeBlock::BlockElements),
434 0x0025A0..=0x0025FF => Some(UnicodeBlock::GeometricShapes),
435 0x002600..=0x0026FF => Some(UnicodeBlock::MiscellaneousSymbols),
436 0x002700..=0x0027BF => Some(UnicodeBlock::Dingbats),
437 0x0027C0..=0x0027EF => Some(UnicodeBlock::MiscellaneousMathematicalSymbolsA),
438 0x0027F0..=0x0027FF => Some(UnicodeBlock::SupplementalArrowsA),
439 0x002800..=0x0028FF => Some(UnicodeBlock::BraillePatterns),
440 0x002900..=0x00297F => Some(UnicodeBlock::SupplementalArrowsB),
441 0x002980..=0x0029FF => Some(UnicodeBlock::MiscellaneousMathematicalSymbolsB),
442 0x002A00..=0x002AFF => Some(UnicodeBlock::SupplementalMathematicalOperators),
443 0x002B00..=0x002BFF => Some(UnicodeBlock::MiscellaneousSymbolsandArrows),
444 0x002C00..=0x002C5F => Some(UnicodeBlock::Glagolitic),
445 0x002C60..=0x002C7F => Some(UnicodeBlock::LatinExtendedC),
446 0x002C80..=0x002CFF => Some(UnicodeBlock::Coptic),
447 0x002D00..=0x002D2F => Some(UnicodeBlock::GeorgianSupplement),
448 0x002D30..=0x002D7F => Some(UnicodeBlock::Tifinagh),
449 0x002D80..=0x002DDF => Some(UnicodeBlock::EthiopicExtended),
450 0x002DE0..=0x002DFF => Some(UnicodeBlock::CyrillicExtendedA),
451 0x002E00..=0x002E7F => Some(UnicodeBlock::SupplementalPunctuation),
452 0x002E80..=0x002EFF => Some(UnicodeBlock::CJKRadicalsSupplement),
453 0x002F00..=0x002FDF => Some(UnicodeBlock::KangxiRadicals),
454 0x002FF0..=0x002FFF => Some(UnicodeBlock::IdeographicDescriptionCharacters),
455 0x003000..=0x00303F => Some(UnicodeBlock::CJKSymbolsandPunctuation),
456 0x003040..=0x00309F => Some(UnicodeBlock::Hiragana),
457 0x0030A0..=0x0030FF => Some(UnicodeBlock::Katakana),
458 0x003100..=0x00312F => Some(UnicodeBlock::Bopomofo),
459 0x003130..=0x00318F => Some(UnicodeBlock::HangulCompatibilityJamo),
460 0x003190..=0x00319F => Some(UnicodeBlock::Kanbun),
461 0x0031A0..=0x0031BF => Some(UnicodeBlock::BopomofoExtended),
462 0x0031C0..=0x0031EF => Some(UnicodeBlock::CJKStrokes),
463 0x0031F0..=0x0031FF => Some(UnicodeBlock::KatakanaPhoneticExtensions),
464 0x003200..=0x0032FF => Some(UnicodeBlock::EnclosedCJKLettersandMonths),
465 0x003300..=0x0033FF => Some(UnicodeBlock::CJKCompatibility),
466 0x003400..=0x004DBF => Some(UnicodeBlock::CJKUnifiedIdeographsExtensionA),
467 0x004DC0..=0x004DFF => Some(UnicodeBlock::YijingHexagramSymbols),
468 0x004E00..=0x009FFF => Some(UnicodeBlock::CJKUnifiedIdeographs),
469 0x00A000..=0x00A48F => Some(UnicodeBlock::YiSyllables),
470 0x00A490..=0x00A4CF => Some(UnicodeBlock::YiRadicals),
471 0x00A4D0..=0x00A4FF => Some(UnicodeBlock::Lisu),
472 0x00A500..=0x00A63F => Some(UnicodeBlock::Vai),
473 0x00A640..=0x00A69F => Some(UnicodeBlock::CyrillicExtendedB),
474 0x00A6A0..=0x00A6FF => Some(UnicodeBlock::Bamum),
475 0x00A700..=0x00A71F => Some(UnicodeBlock::ModifierToneLetters),
476 0x00A720..=0x00A7FF => Some(UnicodeBlock::LatinExtendedD),
477 0x00A800..=0x00A82F => Some(UnicodeBlock::SylotiNagri),
478 0x00A830..=0x00A83F => Some(UnicodeBlock::CommonIndicNumberForms),
479 0x00A840..=0x00A87F => Some(UnicodeBlock::Phagspa),
480 0x00A880..=0x00A8DF => Some(UnicodeBlock::Saurashtra),
481 0x00A8E0..=0x00A8FF => Some(UnicodeBlock::DevanagariExtended),
482 0x00A900..=0x00A92F => Some(UnicodeBlock::KayahLi),
483 0x00A930..=0x00A95F => Some(UnicodeBlock::Rejang),
484 0x00A960..=0x00A97F => Some(UnicodeBlock::HangulJamoExtendedA),
485 0x00A980..=0x00A9DF => Some(UnicodeBlock::Javanese),
486 0x00A9E0..=0x00A9FF => Some(UnicodeBlock::MyanmarExtendedB),
487 0x00AA00..=0x00AA5F => Some(UnicodeBlock::Cham),
488 0x00AA60..=0x00AA7F => Some(UnicodeBlock::MyanmarExtendedA),
489 0x00AA80..=0x00AADF => Some(UnicodeBlock::TaiViet),
490 0x00AAE0..=0x00AAFF => Some(UnicodeBlock::MeeteiMayekExtensions),
491 0x00AB00..=0x00AB2F => Some(UnicodeBlock::EthiopicExtendedA),
492 0x00AB30..=0x00AB6F => Some(UnicodeBlock::LatinExtendedE),
493 0x00AB70..=0x00ABBF => Some(UnicodeBlock::CherokeeSupplement),
494 0x00ABC0..=0x00ABFF => Some(UnicodeBlock::MeeteiMayek),
495 0x00AC00..=0x00D7AF => Some(UnicodeBlock::HangulSyllables),
496 0x00D7B0..=0x00D7FF => Some(UnicodeBlock::HangulJamoExtendedB),
497 0x00D800..=0x00DB7F => Some(UnicodeBlock::HighSurrogates),
498 0x00DB80..=0x00DBFF => Some(UnicodeBlock::HighPrivateUseSurrogates),
499 0x00DC00..=0x00DFFF => Some(UnicodeBlock::LowSurrogates),
500 0x00E000..=0x00F8FF => Some(UnicodeBlock::PrivateUseArea),
501 0x00F900..=0x00FAFF => Some(UnicodeBlock::CJKCompatibilityIdeographs),
502 0x00FB00..=0x00FB4F => Some(UnicodeBlock::AlphabeticPresentationForms),
503 0x00FB50..=0x00FDFF => Some(UnicodeBlock::ArabicPresentationFormsA),
504 0x00FE00..=0x00FE0F => Some(UnicodeBlock::VariationSelectors),
505 0x00FE10..=0x00FE1F => Some(UnicodeBlock::VerticalForms),
506 0x00FE20..=0x00FE2F => Some(UnicodeBlock::CombiningHalfMarks),
507 0x00FE30..=0x00FE4F => Some(UnicodeBlock::CJKCompatibilityForms),
508 0x00FE50..=0x00FE6F => Some(UnicodeBlock::SmallFormVariants),
509 0x00FE70..=0x00FEFF => Some(UnicodeBlock::ArabicPresentationFormsB),
510 0x00FF00..=0x00FFEF => Some(UnicodeBlock::HalfwidthandFullwidthForms),
511 0x00FFF0..=0x00FFFF => Some(UnicodeBlock::Specials),
512 0x010000..=0x01007F => Some(UnicodeBlock::LinearBSyllabary),
513 0x010080..=0x0100FF => Some(UnicodeBlock::LinearBIdeograms),
514 0x010100..=0x01013F => Some(UnicodeBlock::AegeanNumbers),
515 0x010140..=0x01018F => Some(UnicodeBlock::AncientGreekNumbers),
516 0x010190..=0x0101CF => Some(UnicodeBlock::AncientSymbols),
517 0x0101D0..=0x0101FF => Some(UnicodeBlock::PhaistosDisc),
518 0x010280..=0x01029F => Some(UnicodeBlock::Lycian),
519 0x0102A0..=0x0102DF => Some(UnicodeBlock::Carian),
520 0x0102E0..=0x0102FF => Some(UnicodeBlock::CopticEpactNumbers),
521 0x010300..=0x01032F => Some(UnicodeBlock::OldItalic),
522 0x010330..=0x01034F => Some(UnicodeBlock::Gothic),
523 0x010350..=0x01037F => Some(UnicodeBlock::OldPermic),
524 0x010380..=0x01039F => Some(UnicodeBlock::Ugaritic),
525 0x0103A0..=0x0103DF => Some(UnicodeBlock::OldPersian),
526 0x010400..=0x01044F => Some(UnicodeBlock::Deseret),
527 0x010450..=0x01047F => Some(UnicodeBlock::Shavian),
528 0x010480..=0x0104AF => Some(UnicodeBlock::Osmanya),
529 0x0104B0..=0x0104FF => Some(UnicodeBlock::Osage),
530 0x010500..=0x01052F => Some(UnicodeBlock::Elbasan),
531 0x010530..=0x01056F => Some(UnicodeBlock::CaucasianAlbanian),
532 0x010570..=0x0105BF => Some(UnicodeBlock::Vithkuqi),
533 0x010600..=0x01077F => Some(UnicodeBlock::LinearA),
534 0x010780..=0x0107BF => Some(UnicodeBlock::LatinExtendedF),
535 0x010800..=0x01083F => Some(UnicodeBlock::CypriotSyllabary),
536 0x010840..=0x01085F => Some(UnicodeBlock::ImperialAramaic),
537 0x010860..=0x01087F => Some(UnicodeBlock::Palmyrene),
538 0x010880..=0x0108AF => Some(UnicodeBlock::Nabataean),
539 0x0108E0..=0x0108FF => Some(UnicodeBlock::Hatran),
540 0x010900..=0x01091F => Some(UnicodeBlock::Phoenician),
541 0x010920..=0x01093F => Some(UnicodeBlock::Lydian),
542 0x010980..=0x01099F => Some(UnicodeBlock::MeroiticHieroglyphs),
543 0x0109A0..=0x0109FF => Some(UnicodeBlock::MeroiticCursive),
544 0x010A00..=0x010A5F => Some(UnicodeBlock::Kharoshthi),
545 0x010A60..=0x010A7F => Some(UnicodeBlock::OldSouthArabian),
546 0x010A80..=0x010A9F => Some(UnicodeBlock::OldNorthArabian),
547 0x010AC0..=0x010AFF => Some(UnicodeBlock::Manichaean),
548 0x010B00..=0x010B3F => Some(UnicodeBlock::Avestan),
549 0x010B40..=0x010B5F => Some(UnicodeBlock::InscriptionalParthian),
550 0x010B60..=0x010B7F => Some(UnicodeBlock::InscriptionalPahlavi),
551 0x010B80..=0x010BAF => Some(UnicodeBlock::PsalterPahlavi),
552 0x010C00..=0x010C4F => Some(UnicodeBlock::OldTurkic),
553 0x010C80..=0x010CFF => Some(UnicodeBlock::OldHungarian),
554 0x010D00..=0x010D3F => Some(UnicodeBlock::HanifiRohingya),
555 0x010E60..=0x010E7F => Some(UnicodeBlock::RumiNumeralSymbols),
556 0x010E80..=0x010EBF => Some(UnicodeBlock::Yezidi),
557 0x010EC0..=0x010EFF => Some(UnicodeBlock::ArabicExtendedC),
558 0x010F00..=0x010F2F => Some(UnicodeBlock::OldSogdian),
559 0x010F30..=0x010F6F => Some(UnicodeBlock::Sogdian),
560 0x010F70..=0x010FAF => Some(UnicodeBlock::OldUyghur),
561 0x010FB0..=0x010FDF => Some(UnicodeBlock::Chorasmian),
562 0x010FE0..=0x010FFF => Some(UnicodeBlock::Elymaic),
563 0x011000..=0x01107F => Some(UnicodeBlock::Brahmi),
564 0x011080..=0x0110CF => Some(UnicodeBlock::Kaithi),
565 0x0110D0..=0x0110FF => Some(UnicodeBlock::SoraSompeng),
566 0x011100..=0x01114F => Some(UnicodeBlock::Chakma),
567 0x011150..=0x01117F => Some(UnicodeBlock::Mahajani),
568 0x011180..=0x0111DF => Some(UnicodeBlock::Sharada),
569 0x0111E0..=0x0111FF => Some(UnicodeBlock::SinhalaArchaicNumbers),
570 0x011200..=0x01124F => Some(UnicodeBlock::Khojki),
571 0x011280..=0x0112AF => Some(UnicodeBlock::Multani),
572 0x0112B0..=0x0112FF => Some(UnicodeBlock::Khudawadi),
573 0x011300..=0x01137F => Some(UnicodeBlock::Grantha),
574 0x011400..=0x01147F => Some(UnicodeBlock::Newa),
575 0x011480..=0x0114DF => Some(UnicodeBlock::Tirhuta),
576 0x011580..=0x0115FF => Some(UnicodeBlock::Siddham),
577 0x011600..=0x01165F => Some(UnicodeBlock::Modi),
578 0x011660..=0x01167F => Some(UnicodeBlock::MongolianSupplement),
579 0x011680..=0x0116CF => Some(UnicodeBlock::Takri),
580 0x011700..=0x01174F => Some(UnicodeBlock::Ahom),
581 0x011800..=0x01184F => Some(UnicodeBlock::Dogra),
582 0x0118A0..=0x0118FF => Some(UnicodeBlock::WarangCiti),
583 0x011900..=0x01195F => Some(UnicodeBlock::DivesAkuru),
584 0x0119A0..=0x0119FF => Some(UnicodeBlock::Nandinagari),
585 0x011A00..=0x011A4F => Some(UnicodeBlock::ZanabazarSquare),
586 0x011A50..=0x011AAF => Some(UnicodeBlock::Soyombo),
587 0x011AB0..=0x011ABF => Some(UnicodeBlock::UnifiedCanadianAboriginalSyllabicsExtendedA),
588 0x011AC0..=0x011AFF => Some(UnicodeBlock::PauCinHau),
589 0x011B00..=0x011B5F => Some(UnicodeBlock::DevanagariExtendedA),
590 0x011C00..=0x011C6F => Some(UnicodeBlock::Bhaiksuki),
591 0x011C70..=0x011CBF => Some(UnicodeBlock::Marchen),
592 0x011D00..=0x011D5F => Some(UnicodeBlock::MasaramGondi),
593 0x011D60..=0x011DAF => Some(UnicodeBlock::GunjalaGondi),
594 0x011EE0..=0x011EFF => Some(UnicodeBlock::Makasar),
595 0x011F00..=0x011F5F => Some(UnicodeBlock::Kawi),
596 0x011FB0..=0x011FBF => Some(UnicodeBlock::LisuSupplement),
597 0x011FC0..=0x011FFF => Some(UnicodeBlock::TamilSupplement),
598 0x012000..=0x0123FF => Some(UnicodeBlock::Cuneiform),
599 0x012400..=0x01247F => Some(UnicodeBlock::CuneiformNumbersandPunctuation),
600 0x012480..=0x01254F => Some(UnicodeBlock::EarlyDynasticCuneiform),
601 0x012F90..=0x012FFF => Some(UnicodeBlock::CyproMinoan),
602 0x013000..=0x01342F => Some(UnicodeBlock::EgyptianHieroglyphs),
603 0x013430..=0x01345F => Some(UnicodeBlock::EgyptianHieroglyphFormatControls),
604 0x014400..=0x01467F => Some(UnicodeBlock::AnatolianHieroglyphs),
605 0x016800..=0x016A3F => Some(UnicodeBlock::BamumSupplement),
606 0x016A40..=0x016A6F => Some(UnicodeBlock::Mro),
607 0x016A70..=0x016ACF => Some(UnicodeBlock::Tangsa),
608 0x016AD0..=0x016AFF => Some(UnicodeBlock::BassaVah),
609 0x016B00..=0x016B8F => Some(UnicodeBlock::PahawhHmong),
610 0x016E40..=0x016E9F => Some(UnicodeBlock::Medefaidrin),
611 0x016F00..=0x016F9F => Some(UnicodeBlock::Miao),
612 0x016FE0..=0x016FFF => Some(UnicodeBlock::IdeographicSymbolsandPunctuation),
613 0x017000..=0x0187FF => Some(UnicodeBlock::Tangut),
614 0x018800..=0x018AFF => Some(UnicodeBlock::TangutComponents),
615 0x018B00..=0x018CFF => Some(UnicodeBlock::KhitanSmallScript),
616 0x018D00..=0x018D7F => Some(UnicodeBlock::TangutSupplement),
617 0x01AFF0..=0x01AFFF => Some(UnicodeBlock::KanaExtendedB),
618 0x01B000..=0x01B0FF => Some(UnicodeBlock::KanaSupplement),
619 0x01B100..=0x01B12F => Some(UnicodeBlock::KanaExtendedA),
620 0x01B130..=0x01B16F => Some(UnicodeBlock::SmallKanaExtension),
621 0x01B170..=0x01B2FF => Some(UnicodeBlock::Nushu),
622 0x01BC00..=0x01BC9F => Some(UnicodeBlock::Duployan),
623 0x01BCA0..=0x01BCAF => Some(UnicodeBlock::ShorthandFormatControls),
624 0x01CF00..=0x01CFCF => Some(UnicodeBlock::ZnamennyMusicalNotation),
625 0x01D000..=0x01D0FF => Some(UnicodeBlock::ByzantineMusicalSymbols),
626 0x01D100..=0x01D1FF => Some(UnicodeBlock::MusicalSymbols),
627 0x01D200..=0x01D24F => Some(UnicodeBlock::AncientGreekMusicalNotation),
628 0x01D2C0..=0x01D2DF => Some(UnicodeBlock::KaktovikNumerals),
629 0x01D2E0..=0x01D2FF => Some(UnicodeBlock::MayanNumerals),
630 0x01D300..=0x01D35F => Some(UnicodeBlock::TaiXuanJingSymbols),
631 0x01D360..=0x01D37F => Some(UnicodeBlock::CountingRodNumerals),
632 0x01D400..=0x01D7FF => Some(UnicodeBlock::MathematicalAlphanumericSymbols),
633 0x01D800..=0x01DAAF => Some(UnicodeBlock::SuttonSignWriting),
634 0x01DF00..=0x01DFFF => Some(UnicodeBlock::LatinExtendedG),
635 0x01E000..=0x01E02F => Some(UnicodeBlock::GlagoliticSupplement),
636 0x01E030..=0x01E08F => Some(UnicodeBlock::CyrillicExtendedD),
637 0x01E100..=0x01E14F => Some(UnicodeBlock::NyiakengPuachueHmong),
638 0x01E290..=0x01E2BF => Some(UnicodeBlock::Toto),
639 0x01E2C0..=0x01E2FF => Some(UnicodeBlock::Wancho),
640 0x01E4D0..=0x01E4FF => Some(UnicodeBlock::NagMundari),
641 0x01E7E0..=0x01E7FF => Some(UnicodeBlock::EthiopicExtendedB),
642 0x01E800..=0x01E8DF => Some(UnicodeBlock::MendeKikakui),
643 0x01E900..=0x01E95F => Some(UnicodeBlock::Adlam),
644 0x01EC70..=0x01ECBF => Some(UnicodeBlock::IndicSiyaqNumbers),
645 0x01ED00..=0x01ED4F => Some(UnicodeBlock::OttomanSiyaqNumbers),
646 0x01EE00..=0x01EEFF => Some(UnicodeBlock::ArabicMathematicalAlphabeticSymbols),
647 0x01F000..=0x01F02F => Some(UnicodeBlock::MahjongTiles),
648 0x01F030..=0x01F09F => Some(UnicodeBlock::DominoTiles),
649 0x01F0A0..=0x01F0FF => Some(UnicodeBlock::PlayingCards),
650 0x01F100..=0x01F1FF => Some(UnicodeBlock::EnclosedAlphanumericSupplement),
651 0x01F200..=0x01F2FF => Some(UnicodeBlock::EnclosedIdeographicSupplement),
652 0x01F300..=0x01F5FF => Some(UnicodeBlock::MiscellaneousSymbolsandPictographs),
653 0x01F600..=0x01F64F => Some(UnicodeBlock::Emoticons),
654 0x01F650..=0x01F67F => Some(UnicodeBlock::OrnamentalDingbats),
655 0x01F680..=0x01F6FF => Some(UnicodeBlock::TransportandMapSymbols),
656 0x01F700..=0x01F77F => Some(UnicodeBlock::AlchemicalSymbols),
657 0x01F780..=0x01F7FF => Some(UnicodeBlock::GeometricShapesExtended),
658 0x01F800..=0x01F8FF => Some(UnicodeBlock::SupplementalArrowsC),
659 0x01F900..=0x01F9FF => Some(UnicodeBlock::SupplementalSymbolsandPictographs),
660 0x01FA00..=0x01FA6F => Some(UnicodeBlock::ChessSymbols),
661 0x01FA70..=0x01FAFF => Some(UnicodeBlock::SymbolsandPictographsExtendedA),
662 0x01FB00..=0x01FBFF => Some(UnicodeBlock::SymbolsforLegacyComputing),
663 0x020000..=0x02A6DF => Some(UnicodeBlock::CJKUnifiedIdeographsExtensionB),
664 0x02A700..=0x02B73F => Some(UnicodeBlock::CJKUnifiedIdeographsExtensionC),
665 0x02B740..=0x02B81F => Some(UnicodeBlock::CJKUnifiedIdeographsExtensionD),
666 0x02B820..=0x02CEAF => Some(UnicodeBlock::CJKUnifiedIdeographsExtensionE),
667 0x02CEB0..=0x02EBEF => Some(UnicodeBlock::CJKUnifiedIdeographsExtensionF),
668 0x02EBF0..=0x02EE5F => Some(UnicodeBlock::CJKUnifiedIdeographsExtensionI),
669 0x02F800..=0x02FA1F => Some(UnicodeBlock::CJKCompatibilityIdeographsSupplement),
670 0x030000..=0x03134F => Some(UnicodeBlock::CJKUnifiedIdeographsExtensionG),
671 0x031350..=0x0323AF => Some(UnicodeBlock::CJKUnifiedIdeographsExtensionH),
672 0x0E0000..=0x0E007F => Some(UnicodeBlock::Tags),
673 0x0E0100..=0x0E01EF => Some(UnicodeBlock::VariationSelectorsSupplement),
674 0x0F0000..=0x0FFFFF => Some(UnicodeBlock::SupplementaryPrivateUseAreaA),
675 0x100000..=0x10FFFF => Some(UnicodeBlock::SupplementaryPrivateUseAreaB),
676 _ => None,
677 }
678 }
679}