/rust/registry/src/index.crates.io-1949cf8c6b5b557f/pest-2.8.3/src/unicode/mod.rs
Line | Count | Source |
1 | | //! Character inclusion in binary or General_Category value Unicode sets. |
2 | | //! |
3 | | //! We rely on dead code elimination to remove the tables that aren't needed. |
4 | | |
5 | | #![allow(bad_style)] |
6 | | #![allow(clippy::all)] |
7 | | |
8 | | use alloc::boxed::Box; |
9 | | |
10 | | macro_rules! property_functions { |
11 | | ($module:ident, $property_names:ident, [$( |
12 | | $prop:ident, |
13 | | )*]) => { |
14 | | #[allow(unused)] |
15 | | mod $module; |
16 | | // unicode::ALPHABETIC('a') |
17 | 0 | $(pub fn $prop(c: char) -> bool { |
18 | 0 | self::$module::$prop.contains_char(c) |
19 | 0 | })* Unexecuted instantiation: pest::unicode::ALPHABETIC Unexecuted instantiation: pest::unicode::CHORASMIAN Unexecuted instantiation: pest::unicode::DEPRECATED Unexecuted instantiation: pest::unicode::DEVANAGARI Unexecuted instantiation: pest::unicode::GLAGOLITIC Unexecuted instantiation: pest::unicode::KHAROSHTHI Unexecuted instantiation: pest::unicode::MANICHAEAN Unexecuted instantiation: pest::unicode::OLD_ITALIC Unexecuted instantiation: pest::unicode::OLD_PERMIC Unexecuted instantiation: pest::unicode::OLD_TURKIC Unexecuted instantiation: pest::unicode::OLD_UYGHUR Unexecuted instantiation: pest::unicode::OTHER_MATH Unexecuted instantiation: pest::unicode::PHOENICIAN Unexecuted instantiation: pest::unicode::SAURASHTRA Unexecuted instantiation: pest::unicode::UNASSIGNED Unexecuted instantiation: pest::unicode::DIVES_AKURU Unexecuted instantiation: pest::unicode::IDEOGRAPHIC Unexecuted instantiation: pest::unicode::ID_CONTINUE Unexecuted instantiation: pest::unicode::MATH_SYMBOL Unexecuted instantiation: pest::unicode::MEDEFAIDRIN Unexecuted instantiation: pest::unicode::NAG_MUNDARI Unexecuted instantiation: pest::unicode::NANDINAGARI Unexecuted instantiation: pest::unicode::NEW_TAI_LUE Unexecuted instantiation: pest::unicode::OLD_PERSIAN Unexecuted instantiation: pest::unicode::OLD_SOGDIAN Unexecuted instantiation: pest::unicode::PAU_CIN_HAU Unexecuted instantiation: pest::unicode::PRIVATE_USE Unexecuted instantiation: pest::unicode::PUNCTUATION Unexecuted instantiation: pest::unicode::SIGNWRITING Unexecuted instantiation: pest::unicode::SOFT_DOTTED Unexecuted instantiation: pest::unicode::WARANG_CITI Unexecuted instantiation: pest::unicode::WHITE_SPACE Unexecuted instantiation: pest::unicode::BIDI_CONTROL Unexecuted instantiation: pest::unicode::CASED_LETTER Unexecuted instantiation: pest::unicode::CYPRO_MINOAN Unexecuted instantiation: pest::unicode::JOIN_CONTROL Unexecuted instantiation: pest::unicode::MEETEI_MAYEK Unexecuted instantiation: pest::unicode::OTHER_LETTER Unexecuted instantiation: pest::unicode::OTHER_NUMBER Unexecuted instantiation: pest::unicode::OTHER_SYMBOL Unexecuted instantiation: pest::unicode::PAHAWH_HMONG Unexecuted instantiation: pest::unicode::SORA_SOMPENG Unexecuted instantiation: pest::unicode::SPACING_MARK Unexecuted instantiation: pest::unicode::SYLOTI_NAGRI Unexecuted instantiation: pest::unicode::XID_CONTINUE Unexecuted instantiation: pest::unicode::GRAPHEME_BASE Unexecuted instantiation: pest::unicode::GRAPHEME_LINK Unexecuted instantiation: pest::unicode::GUNJALA_GONDI Unexecuted instantiation: pest::unicode::LETTER_NUMBER Unexecuted instantiation: pest::unicode::MASARAM_GONDI Unexecuted instantiation: pest::unicode::MENDE_KIKAKUI Unexecuted instantiation: pest::unicode::OLD_HUNGARIAN Unexecuted instantiation: pest::unicode::CASE_IGNORABLE Unexecuted instantiation: pest::unicode::DECIMAL_NUMBER Unexecuted instantiation: pest::unicode::EMOJI_MODIFIER Unexecuted instantiation: pest::unicode::ENCLOSING_MARK Unexecuted instantiation: pest::unicode::LINE_SEPARATOR Unexecuted instantiation: pest::unicode::OTHER_ID_START Unexecuted instantiation: pest::unicode::PATTERN_SYNTAX Unexecuted instantiation: pest::unicode::QUOTATION_MARK Unexecuted instantiation: pest::unicode::CURRENCY_SYMBOL Unexecuted instantiation: pest::unicode::EMOJI_COMPONENT Unexecuted instantiation: pest::unicode::GRAPHEME_EXTEND Unexecuted instantiation: pest::unicode::HANIFI_ROHINGYA Unexecuted instantiation: pest::unicode::MODIFIER_LETTER Unexecuted instantiation: pest::unicode::MODIFIER_SYMBOL Unexecuted instantiation: pest::unicode::NONSPACING_MARK Unexecuted instantiation: pest::unicode::OTHER_LOWERCASE Unexecuted instantiation: pest::unicode::OTHER_UPPERCASE Unexecuted instantiation: pest::unicode::PSALTER_PAHLAVI Unexecuted instantiation: pest::unicode::SPACE_SEPARATOR Unexecuted instantiation: pest::unicode::DASH_PUNCTUATION Unexecuted instantiation: pest::unicode::IMPERIAL_ARAMAIC Unexecuted instantiation: pest::unicode::LOWERCASE_LETTER Unexecuted instantiation: pest::unicode::MEROITIC_CURSIVE Unexecuted instantiation: pest::unicode::OPEN_PUNCTUATION Unexecuted instantiation: pest::unicode::OTHER_ALPHABETIC Unexecuted instantiation: pest::unicode::TITLECASE_LETTER Unexecuted instantiation: pest::unicode::UPPERCASE_LETTER Unexecuted instantiation: pest::unicode::ZANABAZAR_SQUARE Unexecuted instantiation: pest::unicode::CLOSE_PUNCTUATION Unexecuted instantiation: pest::unicode::FINAL_PUNCTUATION Unexecuted instantiation: pest::unicode::OLD_NORTH_ARABIAN Unexecuted instantiation: pest::unicode::OLD_SOUTH_ARABIAN Unexecuted instantiation: pest::unicode::OTHER_ID_CONTINUE Unexecuted instantiation: pest::unicode::OTHER_PUNCTUATION Unexecuted instantiation: pest::unicode::SENTENCE_TERMINAL Unexecuted instantiation: pest::unicode::UNIFIED_IDEOGRAPH Unexecuted instantiation: pest::unicode::CAUCASIAN_ALBANIAN Unexecuted instantiation: pest::unicode::EMOJI_PRESENTATION Unexecuted instantiation: pest::unicode::REGIONAL_INDICATOR Unexecuted instantiation: pest::unicode::VARIATION_SELECTOR Unexecuted instantiation: pest::unicode::CANADIAN_ABORIGINAL Unexecuted instantiation: pest::unicode::EMOJI_MODIFIER_BASE Unexecuted instantiation: pest::unicode::IDS_BINARY_OPERATOR Unexecuted instantiation: pest::unicode::INITIAL_PUNCTUATION Unexecuted instantiation: pest::unicode::KHITAN_SMALL_SCRIPT Unexecuted instantiation: pest::unicode::PARAGRAPH_SEPARATOR Unexecuted instantiation: pest::unicode::PATTERN_WHITE_SPACE Unexecuted instantiation: pest::unicode::EGYPTIAN_HIEROGLYPHS Unexecuted instantiation: pest::unicode::IDS_TRINARY_OPERATOR Unexecuted instantiation: pest::unicode::MEROITIC_HIEROGLYPHS Unexecuted instantiation: pest::unicode::TERMINAL_PUNCTUATION Unexecuted instantiation: pest::unicode::ANATOLIAN_HIEROGLYPHS Unexecuted instantiation: pest::unicode::CONNECTOR_PUNCTUATION Unexecuted instantiation: pest::unicode::EXTENDED_PICTOGRAPHIC Unexecuted instantiation: pest::unicode::INSCRIPTIONAL_PAHLAVI Unexecuted instantiation: pest::unicode::OTHER_GRAPHEME_EXTEND Unexecuted instantiation: pest::unicode::INSCRIPTIONAL_PARTHIAN Unexecuted instantiation: pest::unicode::NYIAKENG_PUACHUE_HMONG Unexecuted instantiation: pest::unicode::CHANGES_WHEN_CASEFOLDED Unexecuted instantiation: pest::unicode::CHANGES_WHEN_CASEMAPPED Unexecuted instantiation: pest::unicode::CHANGES_WHEN_LOWERCASED Unexecuted instantiation: pest::unicode::CHANGES_WHEN_TITLECASED Unexecuted instantiation: pest::unicode::CHANGES_WHEN_UPPERCASED Unexecuted instantiation: pest::unicode::LOGICAL_ORDER_EXCEPTION Unexecuted instantiation: pest::unicode::NONCHARACTER_CODE_POINT Unexecuted instantiation: pest::unicode::DEFAULT_IGNORABLE_CODE_POINT Unexecuted instantiation: pest::unicode::PREPENDED_CONCATENATION_MARK Unexecuted instantiation: pest::unicode::YI Unexecuted instantiation: pest::unicode::OTHER_DEFAULT_IGNORABLE_CODE_POINT Unexecuted instantiation: pest::unicode::HAN Unexecuted instantiation: pest::unicode::LAO Unexecuted instantiation: pest::unicode::MRO Unexecuted instantiation: pest::unicode::NKO Unexecuted instantiation: pest::unicode::VAI Unexecuted instantiation: pest::unicode::AHOM Unexecuted instantiation: pest::unicode::CHAM Unexecuted instantiation: pest::unicode::DASH Unexecuted instantiation: pest::unicode::KAWI Unexecuted instantiation: pest::unicode::LISU Unexecuted instantiation: pest::unicode::MARK Unexecuted instantiation: pest::unicode::MATH Unexecuted instantiation: pest::unicode::MIAO Unexecuted instantiation: pest::unicode::MODI Unexecuted instantiation: pest::unicode::NEWA Unexecuted instantiation: pest::unicode::THAI Unexecuted instantiation: pest::unicode::TOTO Unexecuted instantiation: pest::unicode::ADLAM Unexecuted instantiation: pest::unicode::BAMUM Unexecuted instantiation: pest::unicode::BATAK Unexecuted instantiation: pest::unicode::BUHID Unexecuted instantiation: pest::unicode::CASED Unexecuted instantiation: pest::unicode::DOGRA Unexecuted instantiation: pest::unicode::EMOJI Unexecuted instantiation: pest::unicode::GREEK Unexecuted instantiation: pest::unicode::KHMER Unexecuted instantiation: pest::unicode::LATIN Unexecuted instantiation: pest::unicode::LIMBU Unexecuted instantiation: pest::unicode::NUSHU Unexecuted instantiation: pest::unicode::OGHAM Unexecuted instantiation: pest::unicode::ORIYA Unexecuted instantiation: pest::unicode::OSAGE Unexecuted instantiation: pest::unicode::OTHER Unexecuted instantiation: pest::unicode::RUNIC Unexecuted instantiation: pest::unicode::TAKRI Unexecuted instantiation: pest::unicode::TAMIL Unexecuted instantiation: pest::unicode::ARABIC Unexecuted instantiation: pest::unicode::BRAHMI Unexecuted instantiation: pest::unicode::CARIAN Unexecuted instantiation: pest::unicode::CHAKMA Unexecuted instantiation: pest::unicode::COMMON Unexecuted instantiation: pest::unicode::COPTIC Unexecuted instantiation: pest::unicode::FORMAT Unexecuted instantiation: pest::unicode::GOTHIC Unexecuted instantiation: pest::unicode::HANGUL Unexecuted instantiation: pest::unicode::HATRAN Unexecuted instantiation: pest::unicode::HEBREW Unexecuted instantiation: pest::unicode::HYPHEN Unexecuted instantiation: pest::unicode::KAITHI Unexecuted instantiation: pest::unicode::KHOJKI Unexecuted instantiation: pest::unicode::LEPCHA Unexecuted instantiation: pest::unicode::LETTER Unexecuted instantiation: pest::unicode::LYCIAN Unexecuted instantiation: pest::unicode::LYDIAN Unexecuted instantiation: pest::unicode::NUMBER Unexecuted instantiation: pest::unicode::REJANG Unexecuted instantiation: pest::unicode::SYMBOL Unexecuted instantiation: pest::unicode::SYRIAC Unexecuted instantiation: pest::unicode::TAI_LE Unexecuted instantiation: pest::unicode::TANGSA Unexecuted instantiation: pest::unicode::TANGUT Unexecuted instantiation: pest::unicode::TELUGU Unexecuted instantiation: pest::unicode::THAANA Unexecuted instantiation: pest::unicode::WANCHO Unexecuted instantiation: pest::unicode::YEZIDI Unexecuted instantiation: pest::unicode::AVESTAN Unexecuted instantiation: pest::unicode::BENGALI Unexecuted instantiation: pest::unicode::BRAILLE Unexecuted instantiation: pest::unicode::CONTROL Unexecuted instantiation: pest::unicode::CYPRIOT Unexecuted instantiation: pest::unicode::DESERET Unexecuted instantiation: pest::unicode::ELBASAN Unexecuted instantiation: pest::unicode::ELYMAIC Unexecuted instantiation: pest::unicode::GRANTHA Unexecuted instantiation: pest::unicode::HANUNOO Unexecuted instantiation: pest::unicode::KANNADA Unexecuted instantiation: pest::unicode::MAKASAR Unexecuted instantiation: pest::unicode::MANDAIC Unexecuted instantiation: pest::unicode::MARCHEN Unexecuted instantiation: pest::unicode::MULTANI Unexecuted instantiation: pest::unicode::MYANMAR Unexecuted instantiation: pest::unicode::OSMANYA Unexecuted instantiation: pest::unicode::RADICAL Unexecuted instantiation: pest::unicode::SHARADA Unexecuted instantiation: pest::unicode::SHAVIAN Unexecuted instantiation: pest::unicode::SIDDHAM Unexecuted instantiation: pest::unicode::SINHALA Unexecuted instantiation: pest::unicode::SOGDIAN Unexecuted instantiation: pest::unicode::SOYOMBO Unexecuted instantiation: pest::unicode::TAGALOG Unexecuted instantiation: pest::unicode::TIBETAN Unexecuted instantiation: pest::unicode::TIRHUTA Unexecuted instantiation: pest::unicode::ARMENIAN Unexecuted instantiation: pest::unicode::BALINESE Unexecuted instantiation: pest::unicode::BOPOMOFO Unexecuted instantiation: pest::unicode::BUGINESE Unexecuted instantiation: pest::unicode::CHEROKEE Unexecuted instantiation: pest::unicode::CYRILLIC Unexecuted instantiation: pest::unicode::DUPLOYAN Unexecuted instantiation: pest::unicode::ETHIOPIC Unexecuted instantiation: pest::unicode::EXTENDER Unexecuted instantiation: pest::unicode::GEORGIAN Unexecuted instantiation: pest::unicode::GUJARATI Unexecuted instantiation: pest::unicode::GURMUKHI Unexecuted instantiation: pest::unicode::HIRAGANA Unexecuted instantiation: pest::unicode::ID_START Unexecuted instantiation: pest::unicode::JAVANESE Unexecuted instantiation: pest::unicode::KATAKANA Unexecuted instantiation: pest::unicode::KAYAH_LI Unexecuted instantiation: pest::unicode::LINEAR_A Unexecuted instantiation: pest::unicode::LINEAR_B Unexecuted instantiation: pest::unicode::MAHAJANI Unexecuted instantiation: pest::unicode::OL_CHIKI Unexecuted instantiation: pest::unicode::PHAGS_PA Unexecuted instantiation: pest::unicode::TAGBANWA Unexecuted instantiation: pest::unicode::TAI_THAM Unexecuted instantiation: pest::unicode::TAI_VIET Unexecuted instantiation: pest::unicode::TIFINAGH Unexecuted instantiation: pest::unicode::UGARITIC Unexecuted instantiation: pest::unicode::VITHKUQI Unexecuted instantiation: pest::unicode::BASSA_VAH Unexecuted instantiation: pest::unicode::BHAIKSUKI Unexecuted instantiation: pest::unicode::CUNEIFORM Unexecuted instantiation: pest::unicode::DIACRITIC Unexecuted instantiation: pest::unicode::HEX_DIGIT Unexecuted instantiation: pest::unicode::INHERITED Unexecuted instantiation: pest::unicode::KHUDAWADI Unexecuted instantiation: pest::unicode::LOWERCASE Unexecuted instantiation: pest::unicode::MALAYALAM Unexecuted instantiation: pest::unicode::MONGOLIAN Unexecuted instantiation: pest::unicode::NABATAEAN Unexecuted instantiation: pest::unicode::PALMYRENE Unexecuted instantiation: pest::unicode::SAMARITAN Unexecuted instantiation: pest::unicode::SEPARATOR Unexecuted instantiation: pest::unicode::SUNDANESE Unexecuted instantiation: pest::unicode::SURROGATE Unexecuted instantiation: pest::unicode::UPPERCASE Unexecuted instantiation: pest::unicode::XID_START |
20 | | |
21 | | pub static $property_names: &[&str] = &[ |
22 | | $(stringify!($prop),)* |
23 | | ]; |
24 | | }; |
25 | | } |
26 | | |
27 | | macro_rules! char_property_functions { |
28 | | // For define custom property names |
29 | | {$( |
30 | | mod $module:ident; |
31 | | static $property_names:ident = [$( |
32 | | $prop:ident, |
33 | | )*]; |
34 | | )*} => {$( |
35 | | property_functions!($module, $property_names, [$( |
36 | | $prop, |
37 | | )*]); |
38 | | )*}; |
39 | | // For define property by copy BY_NAME values from `ucd-generate` generated. |
40 | | {$( |
41 | | mod $module:ident; |
42 | | static $property_names:ident = [$( |
43 | | ($_name:tt, $prop:ident), |
44 | | )*]; |
45 | | )*} => {$( |
46 | | property_functions!($module, $property_names, [$( |
47 | | $prop, |
48 | | )*]); |
49 | | )*}; |
50 | | } |
51 | | |
52 | | char_property_functions! { |
53 | | mod binary; |
54 | | static BINARY_PROPERTY_NAMES = [ |
55 | | // ASCII_HEX_DIGIT, // let this one be stripped out -- the full trie is wasteful for ASCII |
56 | | ALPHABETIC, BIDI_CONTROL, CASE_IGNORABLE, CASED, CHANGES_WHEN_CASEFOLDED, |
57 | | CHANGES_WHEN_CASEMAPPED, CHANGES_WHEN_LOWERCASED, CHANGES_WHEN_TITLECASED, |
58 | | CHANGES_WHEN_UPPERCASED, DASH, DEFAULT_IGNORABLE_CODE_POINT, DEPRECATED, DIACRITIC, |
59 | | EMOJI, EMOJI_COMPONENT, EMOJI_MODIFIER, EMOJI_MODIFIER_BASE, EMOJI_PRESENTATION, EXTENDED_PICTOGRAPHIC, |
60 | | EXTENDER, GRAPHEME_BASE, GRAPHEME_EXTEND, GRAPHEME_LINK, HEX_DIGIT, HYPHEN, |
61 | | IDS_BINARY_OPERATOR, IDS_TRINARY_OPERATOR, ID_CONTINUE, ID_START, IDEOGRAPHIC, JOIN_CONTROL, |
62 | | LOGICAL_ORDER_EXCEPTION, LOWERCASE, MATH, NONCHARACTER_CODE_POINT, OTHER_ALPHABETIC, |
63 | | OTHER_DEFAULT_IGNORABLE_CODE_POINT, OTHER_GRAPHEME_EXTEND, OTHER_ID_CONTINUE, |
64 | | OTHER_ID_START, OTHER_LOWERCASE, OTHER_MATH, OTHER_UPPERCASE, PATTERN_SYNTAX, |
65 | | PATTERN_WHITE_SPACE, PREPENDED_CONCATENATION_MARK, QUOTATION_MARK, RADICAL, |
66 | | REGIONAL_INDICATOR, SENTENCE_TERMINAL, SOFT_DOTTED, TERMINAL_PUNCTUATION, UNIFIED_IDEOGRAPH, |
67 | | UPPERCASE, VARIATION_SELECTOR, WHITE_SPACE, XID_CONTINUE, XID_START, |
68 | | ]; |
69 | | } |
70 | | |
71 | | char_property_functions! { |
72 | | mod category; |
73 | | // Copy from category::BY_NAME |
74 | | static CATEGORY_PROPERTY_NAMES = [ |
75 | | ("Cased_Letter", CASED_LETTER), ("Close_Punctuation", CLOSE_PUNCTUATION), |
76 | | ("Connector_Punctuation", CONNECTOR_PUNCTUATION), ("Control", CONTROL), |
77 | | ("Currency_Symbol", CURRENCY_SYMBOL), |
78 | | ("Dash_Punctuation", DASH_PUNCTUATION), ("Decimal_Number", DECIMAL_NUMBER), |
79 | | ("Enclosing_Mark", ENCLOSING_MARK), |
80 | | ("Final_Punctuation", FINAL_PUNCTUATION), ("Format", FORMAT), |
81 | | ("Initial_Punctuation", INITIAL_PUNCTUATION), ("Letter", LETTER), |
82 | | ("Letter_Number", LETTER_NUMBER), ("Line_Separator", LINE_SEPARATOR), |
83 | | ("Lowercase_Letter", LOWERCASE_LETTER), ("Mark", MARK), |
84 | | ("Math_Symbol", MATH_SYMBOL), ("Modifier_Letter", MODIFIER_LETTER), |
85 | | ("Modifier_Symbol", MODIFIER_SYMBOL), ("Nonspacing_Mark", NONSPACING_MARK), |
86 | | ("Number", NUMBER), ("Open_Punctuation", OPEN_PUNCTUATION), |
87 | | ("Other", OTHER), ("Other_Letter", OTHER_LETTER), |
88 | | ("Other_Number", OTHER_NUMBER), ("Other_Punctuation", OTHER_PUNCTUATION), |
89 | | ("Other_Symbol", OTHER_SYMBOL), |
90 | | ("Paragraph_Separator", PARAGRAPH_SEPARATOR), ("Private_Use", PRIVATE_USE), |
91 | | ("Punctuation", PUNCTUATION), ("Separator", SEPARATOR), |
92 | | ("Space_Separator", SPACE_SEPARATOR), ("Spacing_Mark", SPACING_MARK), |
93 | | ("Surrogate", SURROGATE), ("Symbol", SYMBOL), |
94 | | ("Titlecase_Letter", TITLECASE_LETTER), ("Unassigned", UNASSIGNED), |
95 | | ("Uppercase_Letter", UPPERCASE_LETTER), |
96 | | ]; |
97 | | |
98 | | mod script; |
99 | | // Copy from script::BY_NAME |
100 | | static SCRIPT_PROPERTY_NAMES = [ |
101 | | ("Adlam", ADLAM), |
102 | | ("Ahom", AHOM), |
103 | | ("Anatolian_Hieroglyphs", ANATOLIAN_HIEROGLYPHS), |
104 | | ("Arabic", ARABIC), |
105 | | ("Armenian", ARMENIAN), |
106 | | ("Avestan", AVESTAN), |
107 | | ("Balinese", BALINESE), |
108 | | ("Bamum", BAMUM), |
109 | | ("Bassa_Vah", BASSA_VAH), |
110 | | ("Batak", BATAK), |
111 | | ("Bengali", BENGALI), |
112 | | ("Bhaiksuki", BHAIKSUKI), |
113 | | ("Bopomofo", BOPOMOFO), |
114 | | ("Brahmi", BRAHMI), |
115 | | ("Braille", BRAILLE), |
116 | | ("Buginese", BUGINESE), |
117 | | ("Buhid", BUHID), |
118 | | ("Canadian_Aboriginal", CANADIAN_ABORIGINAL), |
119 | | ("Carian", CARIAN), |
120 | | ("Caucasian_Albanian", CAUCASIAN_ALBANIAN), |
121 | | ("Chakma", CHAKMA), |
122 | | ("Cham", CHAM), |
123 | | ("Cherokee", CHEROKEE), |
124 | | ("Chorasmian", CHORASMIAN), |
125 | | ("Common", COMMON), |
126 | | ("Coptic", COPTIC), |
127 | | ("Cuneiform", CUNEIFORM), |
128 | | ("Cypriot", CYPRIOT), |
129 | | ("Cypro_Minoan", CYPRO_MINOAN), |
130 | | ("Cyrillic", CYRILLIC), |
131 | | ("Deseret", DESERET), |
132 | | ("Devanagari", DEVANAGARI), |
133 | | ("Dives_Akuru", DIVES_AKURU), |
134 | | ("Dogra", DOGRA), |
135 | | ("Duployan", DUPLOYAN), |
136 | | ("Egyptian_Hieroglyphs", EGYPTIAN_HIEROGLYPHS), |
137 | | ("Elbasan", ELBASAN), |
138 | | ("Elymaic", ELYMAIC), |
139 | | ("Ethiopic", ETHIOPIC), |
140 | | ("Georgian", GEORGIAN), |
141 | | ("Glagolitic", GLAGOLITIC), |
142 | | ("Gothic", GOTHIC), |
143 | | ("Grantha", GRANTHA), |
144 | | ("Greek", GREEK), |
145 | | ("Gujarati", GUJARATI), |
146 | | ("Gunjala_Gondi", GUNJALA_GONDI), |
147 | | ("Gurmukhi", GURMUKHI), |
148 | | ("Han", HAN), |
149 | | ("Hangul", HANGUL), |
150 | | ("Hanifi_Rohingya", HANIFI_ROHINGYA), |
151 | | ("Hanunoo", HANUNOO), |
152 | | ("Hatran", HATRAN), |
153 | | ("Hebrew", HEBREW), |
154 | | ("Hiragana", HIRAGANA), |
155 | | ("Imperial_Aramaic", IMPERIAL_ARAMAIC), |
156 | | ("Inherited", INHERITED), |
157 | | ("Inscriptional_Pahlavi", INSCRIPTIONAL_PAHLAVI), |
158 | | ("Inscriptional_Parthian", INSCRIPTIONAL_PARTHIAN), |
159 | | ("Javanese", JAVANESE), |
160 | | ("Kaithi", KAITHI), |
161 | | ("Kannada", KANNADA), |
162 | | ("Katakana", KATAKANA), |
163 | | ("Kawi", KAWI), |
164 | | ("Kayah_Li", KAYAH_LI), |
165 | | ("Kharoshthi", KHAROSHTHI), |
166 | | ("Khitan_Small_Script", KHITAN_SMALL_SCRIPT), |
167 | | ("Khmer", KHMER), |
168 | | ("Khojki", KHOJKI), |
169 | | ("Khudawadi", KHUDAWADI), |
170 | | ("Lao", LAO), |
171 | | ("Latin", LATIN), |
172 | | ("Lepcha", LEPCHA), |
173 | | ("Limbu", LIMBU), |
174 | | ("Linear_A", LINEAR_A), |
175 | | ("Linear_B", LINEAR_B), |
176 | | ("Lisu", LISU), |
177 | | ("Lycian", LYCIAN), |
178 | | ("Lydian", LYDIAN), |
179 | | ("Mahajani", MAHAJANI), |
180 | | ("Makasar", MAKASAR), |
181 | | ("Malayalam", MALAYALAM), |
182 | | ("Mandaic", MANDAIC), |
183 | | ("Manichaean", MANICHAEAN), |
184 | | ("Marchen", MARCHEN), |
185 | | ("Masaram_Gondi", MASARAM_GONDI), |
186 | | ("Medefaidrin", MEDEFAIDRIN), |
187 | | ("Meetei_Mayek", MEETEI_MAYEK), |
188 | | ("Mende_Kikakui", MENDE_KIKAKUI), |
189 | | ("Meroitic_Cursive", MEROITIC_CURSIVE), |
190 | | ("Meroitic_Hieroglyphs", MEROITIC_HIEROGLYPHS), |
191 | | ("Miao", MIAO), |
192 | | ("Modi", MODI), |
193 | | ("Mongolian", MONGOLIAN), |
194 | | ("Mro", MRO), |
195 | | ("Multani", MULTANI), |
196 | | ("Myanmar", MYANMAR), |
197 | | ("Nabataean", NABATAEAN), |
198 | | ("Nag_Mundari", NAG_MUNDARI), |
199 | | ("Nandinagari", NANDINAGARI), |
200 | | ("New_Tai_Lue", NEW_TAI_LUE), |
201 | | ("Newa", NEWA), |
202 | | ("Nko", NKO), |
203 | | ("Nushu", NUSHU), |
204 | | ("Nyiakeng_Puachue_Hmong", NYIAKENG_PUACHUE_HMONG), |
205 | | ("Ogham", OGHAM), |
206 | | ("Ol_Chiki", OL_CHIKI), |
207 | | ("Old_Hungarian", OLD_HUNGARIAN), |
208 | | ("Old_Italic", OLD_ITALIC), |
209 | | ("Old_North_Arabian", OLD_NORTH_ARABIAN), |
210 | | ("Old_Permic", OLD_PERMIC), |
211 | | ("Old_Persian", OLD_PERSIAN), |
212 | | ("Old_Sogdian", OLD_SOGDIAN), |
213 | | ("Old_South_Arabian", OLD_SOUTH_ARABIAN), |
214 | | ("Old_Turkic", OLD_TURKIC), |
215 | | ("Old_Uyghur", OLD_UYGHUR), |
216 | | ("Oriya", ORIYA), |
217 | | ("Osage", OSAGE), |
218 | | ("Osmanya", OSMANYA), |
219 | | ("Pahawh_Hmong", PAHAWH_HMONG), |
220 | | ("Palmyrene", PALMYRENE), |
221 | | ("Pau_Cin_Hau", PAU_CIN_HAU), |
222 | | ("Phags_Pa", PHAGS_PA), |
223 | | ("Phoenician", PHOENICIAN), |
224 | | ("Psalter_Pahlavi", PSALTER_PAHLAVI), |
225 | | ("Rejang", REJANG), |
226 | | ("Runic", RUNIC), |
227 | | ("Samaritan", SAMARITAN), |
228 | | ("Saurashtra", SAURASHTRA), |
229 | | ("Sharada", SHARADA), |
230 | | ("Shavian", SHAVIAN), |
231 | | ("Siddham", SIDDHAM), |
232 | | ("SignWriting", SIGNWRITING), |
233 | | ("Sinhala", SINHALA), |
234 | | ("Sogdian", SOGDIAN), |
235 | | ("Sora_Sompeng", SORA_SOMPENG), |
236 | | ("Soyombo", SOYOMBO), |
237 | | ("Sundanese", SUNDANESE), |
238 | | ("Syloti_Nagri", SYLOTI_NAGRI), |
239 | | ("Syriac", SYRIAC), |
240 | | ("Tagalog", TAGALOG), |
241 | | ("Tagbanwa", TAGBANWA), |
242 | | ("Tai_Le", TAI_LE), |
243 | | ("Tai_Tham", TAI_THAM), |
244 | | ("Tai_Viet", TAI_VIET), |
245 | | ("Takri", TAKRI), |
246 | | ("Tamil", TAMIL), |
247 | | ("Tangsa", TANGSA), |
248 | | ("Tangut", TANGUT), |
249 | | ("Telugu", TELUGU), |
250 | | ("Thaana", THAANA), |
251 | | ("Thai", THAI), |
252 | | ("Tibetan", TIBETAN), |
253 | | ("Tifinagh", TIFINAGH), |
254 | | ("Tirhuta", TIRHUTA), |
255 | | ("Toto", TOTO), |
256 | | ("Ugaritic", UGARITIC), |
257 | | ("Vai", VAI), |
258 | | ("Vithkuqi", VITHKUQI), |
259 | | ("Wancho", WANCHO), |
260 | | ("Warang_Citi", WARANG_CITI), |
261 | | ("Yezidi", YEZIDI), |
262 | | ("Yi", YI), |
263 | | ("Zanabazar_Square", ZANABAZAR_SQUARE), |
264 | | ]; |
265 | | } |
266 | | |
267 | | /// Return all available unicode property names |
268 | 0 | pub fn unicode_property_names() -> Box<dyn Iterator<Item = &'static str>> { |
269 | 0 | Box::new( |
270 | 0 | BINARY_PROPERTY_NAMES |
271 | 0 | .iter() |
272 | 0 | .map(|name| *name) |
273 | 0 | .chain(CATEGORY_PROPERTY_NAMES.iter().map(|name| *name)) |
274 | 0 | .chain(SCRIPT_PROPERTY_NAMES.iter().map(|name| *name)), |
275 | | ) |
276 | 0 | } |
277 | | |
278 | 0 | pub fn by_name(name: &str) -> Option<Box<dyn Fn(char) -> bool>> { |
279 | 0 | for property in binary::BY_NAME { |
280 | 0 | if name == property.0.to_uppercase() { |
281 | 0 | return Some(Box::new(move |c| property.1.contains_char(c))); |
282 | 0 | } |
283 | | } |
284 | | |
285 | 0 | for property in category::BY_NAME { |
286 | 0 | if name == property.0.to_uppercase() { |
287 | 0 | return Some(Box::new(move |c| property.1.contains_char(c))); |
288 | 0 | } |
289 | | } |
290 | | |
291 | 0 | for property in script::BY_NAME { |
292 | 0 | if name == property.0.to_uppercase() { |
293 | 0 | return Some(Box::new(move |c| property.1.contains_char(c))); |
294 | 0 | } |
295 | | } |
296 | | |
297 | 0 | None |
298 | 0 | } |