Skip to main content

icu_properties/
enum_values.rs

1// This file is part of ICU4X. For terms of use, please see the file
2// called LICENSE at the top level of the ICU4X source tree
3// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
4
5// @generated by tools/make/codegen/src/properties.rs
6
7#![allow(missing_docs)] // only documented if long and short name differ
8#![allow(non_upper_case_globals)] // use camel casing to look like enum variants
9
10use crate::props::*;
11
12impl BidiClass {
13    pub const LeftToRight: Self = Self(0);
14    pub const L: Self = Self::LeftToRight;
15    pub const RightToLeft: Self = Self(1);
16    pub const R: Self = Self::RightToLeft;
17    pub const EuropeanNumber: Self = Self(2);
18    pub const EN: Self = Self::EuropeanNumber;
19    pub const EuropeanSeparator: Self = Self(3);
20    pub const ES: Self = Self::EuropeanSeparator;
21    pub const EuropeanTerminator: Self = Self(4);
22    pub const ET: Self = Self::EuropeanTerminator;
23    pub const ArabicNumber: Self = Self(5);
24    pub const AN: Self = Self::ArabicNumber;
25    pub const CommonSeparator: Self = Self(6);
26    pub const CS: Self = Self::CommonSeparator;
27    pub const ParagraphSeparator: Self = Self(7);
28    pub const B: Self = Self::ParagraphSeparator;
29    pub const SegmentSeparator: Self = Self(8);
30    pub const S: Self = Self::SegmentSeparator;
31    pub const WhiteSpace: Self = Self(9);
32    pub const WS: Self = Self::WhiteSpace;
33    pub const OtherNeutral: Self = Self(10);
34    pub const ON: Self = Self::OtherNeutral;
35    pub const LeftToRightEmbedding: Self = Self(11);
36    pub const LRE: Self = Self::LeftToRightEmbedding;
37    pub const LeftToRightOverride: Self = Self(12);
38    pub const LRO: Self = Self::LeftToRightOverride;
39    pub const ArabicLetter: Self = Self(13);
40    pub const AL: Self = Self::ArabicLetter;
41    pub const RightToLeftEmbedding: Self = Self(14);
42    pub const RLE: Self = Self::RightToLeftEmbedding;
43    pub const RightToLeftOverride: Self = Self(15);
44    pub const RLO: Self = Self::RightToLeftOverride;
45    pub const PopDirectionalFormat: Self = Self(16);
46    pub const PDF: Self = Self::PopDirectionalFormat;
47    pub const NonspacingMark: Self = Self(17);
48    pub const NSM: Self = Self::NonspacingMark;
49    pub const BoundaryNeutral: Self = Self(18);
50    pub const BN: Self = Self::BoundaryNeutral;
51    pub const FirstStrongIsolate: Self = Self(19);
52    pub const FSI: Self = Self::FirstStrongIsolate;
53    pub const LeftToRightIsolate: Self = Self(20);
54    pub const LRI: Self = Self::LeftToRightIsolate;
55    pub const RightToLeftIsolate: Self = Self(21);
56    pub const RLI: Self = Self::RightToLeftIsolate;
57    pub const PopDirectionalIsolate: Self = Self(22);
58    pub const PDI: Self = Self::PopDirectionalIsolate;
59}
60
61#[cfg(feature = "datagen")]
62impl databake::Bake for BidiClass {
63    fn bake(&self, env: &databake::CrateEnv) -> databake::TokenStream {
64        env.insert("icu_properties");
65        match *self {
66            Self::LeftToRight => databake::quote!(icu_properties::props::BidiClass::LeftToRight),
67            Self::RightToLeft => databake::quote!(icu_properties::props::BidiClass::RightToLeft),
68            Self::EuropeanNumber => databake::quote!(icu_properties::props::BidiClass::EuropeanNumber),
69            Self::EuropeanSeparator => databake::quote!(icu_properties::props::BidiClass::EuropeanSeparator),
70            Self::EuropeanTerminator => databake::quote!(icu_properties::props::BidiClass::EuropeanTerminator),
71            Self::ArabicNumber => databake::quote!(icu_properties::props::BidiClass::ArabicNumber),
72            Self::CommonSeparator => databake::quote!(icu_properties::props::BidiClass::CommonSeparator),
73            Self::ParagraphSeparator => databake::quote!(icu_properties::props::BidiClass::ParagraphSeparator),
74            Self::SegmentSeparator => databake::quote!(icu_properties::props::BidiClass::SegmentSeparator),
75            Self::WhiteSpace => databake::quote!(icu_properties::props::BidiClass::WhiteSpace),
76            Self::OtherNeutral => databake::quote!(icu_properties::props::BidiClass::OtherNeutral),
77            Self::LeftToRightEmbedding => databake::quote!(icu_properties::props::BidiClass::LeftToRightEmbedding),
78            Self::LeftToRightOverride => databake::quote!(icu_properties::props::BidiClass::LeftToRightOverride),
79            Self::ArabicLetter => databake::quote!(icu_properties::props::BidiClass::ArabicLetter),
80            Self::RightToLeftEmbedding => databake::quote!(icu_properties::props::BidiClass::RightToLeftEmbedding),
81            Self::RightToLeftOverride => databake::quote!(icu_properties::props::BidiClass::RightToLeftOverride),
82            Self::PopDirectionalFormat => databake::quote!(icu_properties::props::BidiClass::PopDirectionalFormat),
83            Self::NonspacingMark => databake::quote!(icu_properties::props::BidiClass::NonspacingMark),
84            Self::BoundaryNeutral => databake::quote!(icu_properties::props::BidiClass::BoundaryNeutral),
85            Self::FirstStrongIsolate => databake::quote!(icu_properties::props::BidiClass::FirstStrongIsolate),
86            Self::LeftToRightIsolate => databake::quote!(icu_properties::props::BidiClass::LeftToRightIsolate),
87            Self::RightToLeftIsolate => databake::quote!(icu_properties::props::BidiClass::RightToLeftIsolate),
88            Self::PopDirectionalIsolate => databake::quote!(icu_properties::props::BidiClass::PopDirectionalIsolate),
89            Self(v) => databake::quote!(icu_properties::props::BidiClass(#v)),
90        }
91    }
92}
93
94
95impl From<BidiClass> for u16  {
96    fn from(other: BidiClass) -> Self {
97        other.0 as u16
98    }
99}
100
101impl BidiClass {
102    /// Deprecated
103    #[deprecated]
104    pub const ALL_VALUES: &'static [Self] = &[
105        Self::LeftToRight,
106        Self::RightToLeft,
107        Self::EuropeanNumber,
108        Self::EuropeanSeparator,
109        Self::EuropeanTerminator,
110        Self::ArabicNumber,
111        Self::CommonSeparator,
112        Self::ParagraphSeparator,
113        Self::SegmentSeparator,
114        Self::WhiteSpace,
115        Self::OtherNeutral,
116        Self::LeftToRightEmbedding,
117        Self::LeftToRightOverride,
118        Self::ArabicLetter,
119        Self::RightToLeftEmbedding,
120        Self::RightToLeftOverride,
121        Self::PopDirectionalFormat,
122        Self::NonspacingMark,
123        Self::BoundaryNeutral,
124        Self::FirstStrongIsolate,
125        Self::LeftToRightIsolate,
126        Self::RightToLeftIsolate,
127        Self::PopDirectionalIsolate,
128    ];
129
130    #[cfg(feature = "datagen")]
131    #[doc(hidden)]
132    pub fn names() -> impl Iterator<Item = (&'static str, Self)> {
133        [
134            ("L", Self::LeftToRight),
135            ("R", Self::RightToLeft),
136            ("EN", Self::EuropeanNumber),
137            ("ES", Self::EuropeanSeparator),
138            ("ET", Self::EuropeanTerminator),
139            ("AN", Self::ArabicNumber),
140            ("CS", Self::CommonSeparator),
141            ("B", Self::ParagraphSeparator),
142            ("S", Self::SegmentSeparator),
143            ("WS", Self::WhiteSpace),
144            ("ON", Self::OtherNeutral),
145            ("LRE", Self::LeftToRightEmbedding),
146            ("LRO", Self::LeftToRightOverride),
147            ("AL", Self::ArabicLetter),
148            ("RLE", Self::RightToLeftEmbedding),
149            ("RLO", Self::RightToLeftOverride),
150            ("PDF", Self::PopDirectionalFormat),
151            ("NSM", Self::NonspacingMark),
152            ("BN", Self::BoundaryNeutral),
153            ("FSI", Self::FirstStrongIsolate),
154            ("LRI", Self::LeftToRightIsolate),
155            ("RLI", Self::RightToLeftIsolate),
156            ("PDI", Self::PopDirectionalIsolate),
157        ].into_iter()
158    }
159}
160
161impl Block {
162    pub const NoBlock: Self = Self(0);
163    pub const NB: Self = Self::NoBlock;
164    pub const BasicLatin: Self = Self(1);
165    pub const ASCII: Self = Self::BasicLatin;
166    pub const Latin1Supplement: Self = Self(2);
167    pub const Latin1Sup: Self = Self::Latin1Supplement;
168    pub const Latin1: Self = Self::Latin1Supplement;
169    pub const LatinExtendedA: Self = Self(3);
170    pub const LatinExtA: Self = Self::LatinExtendedA;
171    pub const LatinExtendedB: Self = Self(4);
172    pub const LatinExtB: Self = Self::LatinExtendedB;
173    pub const IPAExtensions: Self = Self(5);
174    pub const IPAExt: Self = Self::IPAExtensions;
175    pub const SpacingModifierLetters: Self = Self(6);
176    pub const ModifierLetters: Self = Self::SpacingModifierLetters;
177    pub const CombiningDiacriticalMarks: Self = Self(7);
178    pub const Diacriticals: Self = Self::CombiningDiacriticalMarks;
179    pub const GreekAndCoptic: Self = Self(8);
180    pub const Greek: Self = Self::GreekAndCoptic;
181    pub const Cyrillic: Self = Self(9);
182    pub const Armenian: Self = Self(10);
183    pub const Hebrew: Self = Self(11);
184    pub const Arabic: Self = Self(12);
185    pub const Syriac: Self = Self(13);
186    pub const Thaana: Self = Self(14);
187    pub const Devanagari: Self = Self(15);
188    pub const Bengali: Self = Self(16);
189    pub const Gurmukhi: Self = Self(17);
190    pub const Gujarati: Self = Self(18);
191    pub const Oriya: Self = Self(19);
192    pub const Tamil: Self = Self(20);
193    pub const Telugu: Self = Self(21);
194    pub const Kannada: Self = Self(22);
195    pub const Malayalam: Self = Self(23);
196    pub const Sinhala: Self = Self(24);
197    pub const Thai: Self = Self(25);
198    pub const Lao: Self = Self(26);
199    pub const Tibetan: Self = Self(27);
200    pub const Myanmar: Self = Self(28);
201    pub const Georgian: Self = Self(29);
202    pub const HangulJamo: Self = Self(30);
203    pub const Jamo: Self = Self::HangulJamo;
204    pub const Ethiopic: Self = Self(31);
205    pub const Cherokee: Self = Self(32);
206    pub const UnifiedCanadianAboriginalSyllabics: Self = Self(33);
207    pub const UCAS: Self = Self::UnifiedCanadianAboriginalSyllabics;
208    pub const CanadianSyllabics: Self = Self::UnifiedCanadianAboriginalSyllabics;
209    pub const Ogham: Self = Self(34);
210    pub const Runic: Self = Self(35);
211    pub const Khmer: Self = Self(36);
212    pub const Mongolian: Self = Self(37);
213    pub const LatinExtendedAdditional: Self = Self(38);
214    pub const LatinExtAdditional: Self = Self::LatinExtendedAdditional;
215    pub const GreekExtended: Self = Self(39);
216    pub const GreekExt: Self = Self::GreekExtended;
217    pub const GeneralPunctuation: Self = Self(40);
218    pub const Punctuation: Self = Self::GeneralPunctuation;
219    pub const SuperscriptsAndSubscripts: Self = Self(41);
220    pub const SuperAndSub: Self = Self::SuperscriptsAndSubscripts;
221    pub const CurrencySymbols: Self = Self(42);
222    pub const CombiningDiacriticalMarksForSymbols: Self = Self(43);
223    pub const DiacriticalsForSymbols: Self = Self::CombiningDiacriticalMarksForSymbols;
224    pub const CombiningMarksForSymbols: Self = Self::CombiningDiacriticalMarksForSymbols;
225    pub const LetterlikeSymbols: Self = Self(44);
226    pub const NumberForms: Self = Self(45);
227    pub const Arrows: Self = Self(46);
228    pub const MathematicalOperators: Self = Self(47);
229    pub const MathOperators: Self = Self::MathematicalOperators;
230    pub const MiscellaneousTechnical: Self = Self(48);
231    pub const MiscTechnical: Self = Self::MiscellaneousTechnical;
232    pub const ControlPictures: Self = Self(49);
233    pub const OpticalCharacterRecognition: Self = Self(50);
234    pub const OCR: Self = Self::OpticalCharacterRecognition;
235    pub const EnclosedAlphanumerics: Self = Self(51);
236    pub const EnclosedAlphanum: Self = Self::EnclosedAlphanumerics;
237    pub const BoxDrawing: Self = Self(52);
238    pub const BlockElements: Self = Self(53);
239    pub const GeometricShapes: Self = Self(54);
240    pub const MiscellaneousSymbols: Self = Self(55);
241    pub const MiscSymbols: Self = Self::MiscellaneousSymbols;
242    pub const Dingbats: Self = Self(56);
243    pub const BraillePatterns: Self = Self(57);
244    pub const Braille: Self = Self::BraillePatterns;
245    pub const CJKRadicalsSupplement: Self = Self(58);
246    pub const CJKRadicalsSup: Self = Self::CJKRadicalsSupplement;
247    pub const KangxiRadicals: Self = Self(59);
248    pub const Kangxi: Self = Self::KangxiRadicals;
249    pub const IdeographicDescriptionCharacters: Self = Self(60);
250    pub const IDC: Self = Self::IdeographicDescriptionCharacters;
251    pub const CJKSymbolsAndPunctuation: Self = Self(61);
252    pub const CJKSymbols: Self = Self::CJKSymbolsAndPunctuation;
253    pub const Hiragana: Self = Self(62);
254    pub const Katakana: Self = Self(63);
255    pub const Bopomofo: Self = Self(64);
256    pub const HangulCompatibilityJamo: Self = Self(65);
257    pub const CompatJamo: Self = Self::HangulCompatibilityJamo;
258    pub const Kanbun: Self = Self(66);
259    pub const BopomofoExtended: Self = Self(67);
260    pub const BopomofoExt: Self = Self::BopomofoExtended;
261    pub const EnclosedCJKLettersAndMonths: Self = Self(68);
262    pub const EnclosedCJK: Self = Self::EnclosedCJKLettersAndMonths;
263    pub const CJKCompatibility: Self = Self(69);
264    pub const CJKCompat: Self = Self::CJKCompatibility;
265    pub const CJKUnifiedIdeographsExtensionA: Self = Self(70);
266    pub const CJKExtA: Self = Self::CJKUnifiedIdeographsExtensionA;
267    pub const CJKUnifiedIdeographs: Self = Self(71);
268    pub const CJK: Self = Self::CJKUnifiedIdeographs;
269    pub const YiSyllables: Self = Self(72);
270    pub const YiRadicals: Self = Self(73);
271    pub const HangulSyllables: Self = Self(74);
272    pub const Hangul: Self = Self::HangulSyllables;
273    pub const HighSurrogates: Self = Self(75);
274    pub const HighPrivateUseSurrogates: Self = Self(76);
275    pub const HighPUSurrogates: Self = Self::HighPrivateUseSurrogates;
276    pub const LowSurrogates: Self = Self(77);
277    pub const PrivateUseArea: Self = Self(78);
278    pub const PUA: Self = Self::PrivateUseArea;
279    pub const PrivateUse: Self = Self::PrivateUseArea;
280    pub const CJKCompatibilityIdeographs: Self = Self(79);
281    pub const CJKCompatIdeographs: Self = Self::CJKCompatibilityIdeographs;
282    pub const AlphabeticPresentationForms: Self = Self(80);
283    pub const AlphabeticPF: Self = Self::AlphabeticPresentationForms;
284    pub const ArabicPresentationFormsA: Self = Self(81);
285    pub const ArabicPFA: Self = Self::ArabicPresentationFormsA;
286    pub const CombiningHalfMarks: Self = Self(82);
287    pub const HalfMarks: Self = Self::CombiningHalfMarks;
288    pub const CJKCompatibilityForms: Self = Self(83);
289    pub const CJKCompatForms: Self = Self::CJKCompatibilityForms;
290    pub const SmallFormVariants: Self = Self(84);
291    pub const SmallForms: Self = Self::SmallFormVariants;
292    pub const ArabicPresentationFormsB: Self = Self(85);
293    pub const ArabicPFB: Self = Self::ArabicPresentationFormsB;
294    pub const Specials: Self = Self(86);
295    pub const HalfwidthAndFullwidthForms: Self = Self(87);
296    pub const HalfAndFullForms: Self = Self::HalfwidthAndFullwidthForms;
297    pub const OldItalic: Self = Self(88);
298    pub const Gothic: Self = Self(89);
299    pub const Deseret: Self = Self(90);
300    pub const ByzantineMusicalSymbols: Self = Self(91);
301    pub const ByzantineMusic: Self = Self::ByzantineMusicalSymbols;
302    pub const MusicalSymbols: Self = Self(92);
303    pub const Music: Self = Self::MusicalSymbols;
304    pub const MathematicalAlphanumericSymbols: Self = Self(93);
305    pub const MathAlphanum: Self = Self::MathematicalAlphanumericSymbols;
306    pub const CJKUnifiedIdeographsExtensionB: Self = Self(94);
307    pub const CJKExtB: Self = Self::CJKUnifiedIdeographsExtensionB;
308    pub const CJKCompatibilityIdeographsSupplement: Self = Self(95);
309    pub const CJKCompatIdeographsSup: Self = Self::CJKCompatibilityIdeographsSupplement;
310    pub const Tags: Self = Self(96);
311    pub const CyrillicSupplement: Self = Self(97);
312    pub const CyrillicSup: Self = Self::CyrillicSupplement;
313    pub const CyrillicSupplementary: Self = Self::CyrillicSupplement;
314    pub const Tagalog: Self = Self(98);
315    pub const Hanunoo: Self = Self(99);
316    pub const Buhid: Self = Self(100);
317    pub const Tagbanwa: Self = Self(101);
318    pub const MiscellaneousMathematicalSymbolsA: Self = Self(102);
319    pub const MiscMathSymbolsA: Self = Self::MiscellaneousMathematicalSymbolsA;
320    pub const SupplementalArrowsA: Self = Self(103);
321    pub const SupArrowsA: Self = Self::SupplementalArrowsA;
322    pub const SupplementalArrowsB: Self = Self(104);
323    pub const SupArrowsB: Self = Self::SupplementalArrowsB;
324    pub const MiscellaneousMathematicalSymbolsB: Self = Self(105);
325    pub const MiscMathSymbolsB: Self = Self::MiscellaneousMathematicalSymbolsB;
326    pub const SupplementalMathematicalOperators: Self = Self(106);
327    pub const SupMathOperators: Self = Self::SupplementalMathematicalOperators;
328    pub const KatakanaPhoneticExtensions: Self = Self(107);
329    pub const KatakanaExt: Self = Self::KatakanaPhoneticExtensions;
330    pub const VariationSelectors: Self = Self(108);
331    pub const VS: Self = Self::VariationSelectors;
332    pub const SupplementaryPrivateUseAreaA: Self = Self(109);
333    pub const SupPUAA: Self = Self::SupplementaryPrivateUseAreaA;
334    pub const SupplementaryPrivateUseAreaB: Self = Self(110);
335    pub const SupPUAB: Self = Self::SupplementaryPrivateUseAreaB;
336    pub const Limbu: Self = Self(111);
337    pub const TaiLe: Self = Self(112);
338    pub const KhmerSymbols: Self = Self(113);
339    pub const PhoneticExtensions: Self = Self(114);
340    pub const PhoneticExt: Self = Self::PhoneticExtensions;
341    pub const MiscellaneousSymbolsAndArrows: Self = Self(115);
342    pub const MiscArrows: Self = Self::MiscellaneousSymbolsAndArrows;
343    pub const YijingHexagramSymbols: Self = Self(116);
344    pub const Yijing: Self = Self::YijingHexagramSymbols;
345    pub const LinearBSyllabary: Self = Self(117);
346    pub const LinearBIdeograms: Self = Self(118);
347    pub const AegeanNumbers: Self = Self(119);
348    pub const Ugaritic: Self = Self(120);
349    pub const Shavian: Self = Self(121);
350    pub const Osmanya: Self = Self(122);
351    pub const CypriotSyllabary: Self = Self(123);
352    pub const TaiXuanJingSymbols: Self = Self(124);
353    pub const TaiXuanJing: Self = Self::TaiXuanJingSymbols;
354    pub const VariationSelectorsSupplement: Self = Self(125);
355    pub const VSSup: Self = Self::VariationSelectorsSupplement;
356    pub const AncientGreekMusicalNotation: Self = Self(126);
357    pub const AncientGreekMusic: Self = Self::AncientGreekMusicalNotation;
358    pub const AncientGreekNumbers: Self = Self(127);
359    pub const ArabicSupplement: Self = Self(128);
360    pub const ArabicSup: Self = Self::ArabicSupplement;
361    pub const Buginese: Self = Self(129);
362    pub const CJKStrokes: Self = Self(130);
363    pub const CombiningDiacriticalMarksSupplement: Self = Self(131);
364    pub const DiacriticalsSup: Self = Self::CombiningDiacriticalMarksSupplement;
365    pub const Coptic: Self = Self(132);
366    pub const EthiopicExtended: Self = Self(133);
367    pub const EthiopicExt: Self = Self::EthiopicExtended;
368    pub const EthiopicSupplement: Self = Self(134);
369    pub const EthiopicSup: Self = Self::EthiopicSupplement;
370    pub const GeorgianSupplement: Self = Self(135);
371    pub const GeorgianSup: Self = Self::GeorgianSupplement;
372    pub const Glagolitic: Self = Self(136);
373    pub const Kharoshthi: Self = Self(137);
374    pub const ModifierToneLetters: Self = Self(138);
375    pub const NewTaiLue: Self = Self(139);
376    pub const OldPersian: Self = Self(140);
377    pub const PhoneticExtensionsSupplement: Self = Self(141);
378    pub const PhoneticExtSup: Self = Self::PhoneticExtensionsSupplement;
379    pub const SupplementalPunctuation: Self = Self(142);
380    pub const SupPunctuation: Self = Self::SupplementalPunctuation;
381    pub const SylotiNagri: Self = Self(143);
382    pub const Tifinagh: Self = Self(144);
383    pub const VerticalForms: Self = Self(145);
384    pub const NKo: Self = Self(146);
385    pub const Balinese: Self = Self(147);
386    pub const LatinExtendedC: Self = Self(148);
387    pub const LatinExtC: Self = Self::LatinExtendedC;
388    pub const LatinExtendedD: Self = Self(149);
389    pub const LatinExtD: Self = Self::LatinExtendedD;
390    pub const PhagsPa: Self = Self(150);
391    pub const Phoenician: Self = Self(151);
392    pub const Cuneiform: Self = Self(152);
393    pub const CuneiformNumbersAndPunctuation: Self = Self(153);
394    pub const CuneiformNumbers: Self = Self::CuneiformNumbersAndPunctuation;
395    pub const CountingRodNumerals: Self = Self(154);
396    pub const CountingRod: Self = Self::CountingRodNumerals;
397    pub const Sundanese: Self = Self(155);
398    pub const Lepcha: Self = Self(156);
399    pub const OlChiki: Self = Self(157);
400    pub const CyrillicExtendedA: Self = Self(158);
401    pub const CyrillicExtA: Self = Self::CyrillicExtendedA;
402    pub const Vai: Self = Self(159);
403    pub const CyrillicExtendedB: Self = Self(160);
404    pub const CyrillicExtB: Self = Self::CyrillicExtendedB;
405    pub const Saurashtra: Self = Self(161);
406    pub const KayahLi: Self = Self(162);
407    pub const Rejang: Self = Self(163);
408    pub const Cham: Self = Self(164);
409    pub const AncientSymbols: Self = Self(165);
410    pub const PhaistosDisc: Self = Self(166);
411    pub const Phaistos: Self = Self::PhaistosDisc;
412    pub const Lycian: Self = Self(167);
413    pub const Carian: Self = Self(168);
414    pub const Lydian: Self = Self(169);
415    pub const MahjongTiles: Self = Self(170);
416    pub const Mahjong: Self = Self::MahjongTiles;
417    pub const DominoTiles: Self = Self(171);
418    pub const Domino: Self = Self::DominoTiles;
419    pub const Samaritan: Self = Self(172);
420    pub const UnifiedCanadianAboriginalSyllabicsExtended: Self = Self(173);
421    pub const UCASExt: Self = Self::UnifiedCanadianAboriginalSyllabicsExtended;
422    pub const TaiTham: Self = Self(174);
423    pub const VedicExtensions: Self = Self(175);
424    pub const VedicExt: Self = Self::VedicExtensions;
425    pub const Lisu: Self = Self(176);
426    pub const Bamum: Self = Self(177);
427    pub const CommonIndicNumberForms: Self = Self(178);
428    pub const IndicNumberForms: Self = Self::CommonIndicNumberForms;
429    pub const DevanagariExtended: Self = Self(179);
430    pub const DevanagariExt: Self = Self::DevanagariExtended;
431    pub const HangulJamoExtendedA: Self = Self(180);
432    pub const JamoExtA: Self = Self::HangulJamoExtendedA;
433    pub const Javanese: Self = Self(181);
434    pub const MyanmarExtendedA: Self = Self(182);
435    pub const MyanmarExtA: Self = Self::MyanmarExtendedA;
436    pub const TaiViet: Self = Self(183);
437    pub const MeeteiMayek: Self = Self(184);
438    pub const HangulJamoExtendedB: Self = Self(185);
439    pub const JamoExtB: Self = Self::HangulJamoExtendedB;
440    pub const ImperialAramaic: Self = Self(186);
441    pub const OldSouthArabian: Self = Self(187);
442    pub const Avestan: Self = Self(188);
443    pub const InscriptionalParthian: Self = Self(189);
444    pub const InscriptionalPahlavi: Self = Self(190);
445    pub const OldTurkic: Self = Self(191);
446    pub const RumiNumeralSymbols: Self = Self(192);
447    pub const Rumi: Self = Self::RumiNumeralSymbols;
448    pub const Kaithi: Self = Self(193);
449    pub const EgyptianHieroglyphs: Self = Self(194);
450    pub const EnclosedAlphanumericSupplement: Self = Self(195);
451    pub const EnclosedAlphanumSup: Self = Self::EnclosedAlphanumericSupplement;
452    pub const EnclosedIdeographicSupplement: Self = Self(196);
453    pub const EnclosedIdeographicSup: Self = Self::EnclosedIdeographicSupplement;
454    pub const CJKUnifiedIdeographsExtensionC: Self = Self(197);
455    pub const CJKExtC: Self = Self::CJKUnifiedIdeographsExtensionC;
456    pub const Mandaic: Self = Self(198);
457    pub const Batak: Self = Self(199);
458    pub const EthiopicExtendedA: Self = Self(200);
459    pub const EthiopicExtA: Self = Self::EthiopicExtendedA;
460    pub const Brahmi: Self = Self(201);
461    pub const BamumSupplement: Self = Self(202);
462    pub const BamumSup: Self = Self::BamumSupplement;
463    pub const KanaSupplement: Self = Self(203);
464    pub const KanaSup: Self = Self::KanaSupplement;
465    pub const PlayingCards: Self = Self(204);
466    pub const MiscellaneousSymbolsAndPictographs: Self = Self(205);
467    pub const MiscPictographs: Self = Self::MiscellaneousSymbolsAndPictographs;
468    pub const Emoticons: Self = Self(206);
469    pub const TransportAndMapSymbols: Self = Self(207);
470    pub const TransportAndMap: Self = Self::TransportAndMapSymbols;
471    pub const AlchemicalSymbols: Self = Self(208);
472    pub const Alchemical: Self = Self::AlchemicalSymbols;
473    pub const CJKUnifiedIdeographsExtensionD: Self = Self(209);
474    pub const CJKExtD: Self = Self::CJKUnifiedIdeographsExtensionD;
475    pub const ArabicExtendedA: Self = Self(210);
476    pub const ArabicExtA: Self = Self::ArabicExtendedA;
477    pub const ArabicMathematicalAlphabeticSymbols: Self = Self(211);
478    pub const ArabicMath: Self = Self::ArabicMathematicalAlphabeticSymbols;
479    pub const Chakma: Self = Self(212);
480    pub const MeeteiMayekExtensions: Self = Self(213);
481    pub const MeeteiMayekExt: Self = Self::MeeteiMayekExtensions;
482    pub const MeroiticCursive: Self = Self(214);
483    pub const MeroiticHieroglyphs: Self = Self(215);
484    pub const Miao: Self = Self(216);
485    pub const Sharada: Self = Self(217);
486    pub const SoraSompeng: Self = Self(218);
487    pub const SundaneseSupplement: Self = Self(219);
488    pub const SundaneseSup: Self = Self::SundaneseSupplement;
489    pub const Takri: Self = Self(220);
490    pub const BassaVah: Self = Self(221);
491    pub const CaucasianAlbanian: Self = Self(222);
492    pub const CopticEpactNumbers: Self = Self(223);
493    pub const CombiningDiacriticalMarksExtended: Self = Self(224);
494    pub const DiacriticalsExt: Self = Self::CombiningDiacriticalMarksExtended;
495    pub const Duployan: Self = Self(225);
496    pub const Elbasan: Self = Self(226);
497    pub const GeometricShapesExtended: Self = Self(227);
498    pub const GeometricShapesExt: Self = Self::GeometricShapesExtended;
499    pub const Grantha: Self = Self(228);
500    pub const Khojki: Self = Self(229);
501    pub const Khudawadi: Self = Self(230);
502    pub const LatinExtendedE: Self = Self(231);
503    pub const LatinExtE: Self = Self::LatinExtendedE;
504    pub const LinearA: Self = Self(232);
505    pub const Mahajani: Self = Self(233);
506    pub const Manichaean: Self = Self(234);
507    pub const MendeKikakui: Self = Self(235);
508    pub const Modi: Self = Self(236);
509    pub const Mro: Self = Self(237);
510    pub const MyanmarExtendedB: Self = Self(238);
511    pub const MyanmarExtB: Self = Self::MyanmarExtendedB;
512    pub const Nabataean: Self = Self(239);
513    pub const OldNorthArabian: Self = Self(240);
514    pub const OldPermic: Self = Self(241);
515    pub const OrnamentalDingbats: Self = Self(242);
516    pub const PahawhHmong: Self = Self(243);
517    pub const Palmyrene: Self = Self(244);
518    pub const PauCinHau: Self = Self(245);
519    pub const PsalterPahlavi: Self = Self(246);
520    pub const ShorthandFormatControls: Self = Self(247);
521    pub const Siddham: Self = Self(248);
522    pub const SinhalaArchaicNumbers: Self = Self(249);
523    pub const SupplementalArrowsC: Self = Self(250);
524    pub const SupArrowsC: Self = Self::SupplementalArrowsC;
525    pub const Tirhuta: Self = Self(251);
526    pub const WarangCiti: Self = Self(252);
527    pub const Ahom: Self = Self(253);
528    pub const AnatolianHieroglyphs: Self = Self(254);
529    pub const CherokeeSupplement: Self = Self(255);
530    pub const CherokeeSup: Self = Self::CherokeeSupplement;
531    pub const CJKUnifiedIdeographsExtensionE: Self = Self(256);
532    pub const CJKExtE: Self = Self::CJKUnifiedIdeographsExtensionE;
533    pub const EarlyDynasticCuneiform: Self = Self(257);
534    pub const Hatran: Self = Self(258);
535    pub const Multani: Self = Self(259);
536    pub const OldHungarian: Self = Self(260);
537    pub const SupplementalSymbolsAndPictographs: Self = Self(261);
538    pub const SupSymbolsAndPictographs: Self = Self::SupplementalSymbolsAndPictographs;
539    pub const SuttonSignWriting: Self = Self(262);
540    pub const Adlam: Self = Self(263);
541    pub const Bhaiksuki: Self = Self(264);
542    pub const CyrillicExtendedC: Self = Self(265);
543    pub const CyrillicExtC: Self = Self::CyrillicExtendedC;
544    pub const GlagoliticSupplement: Self = Self(266);
545    pub const GlagoliticSup: Self = Self::GlagoliticSupplement;
546    pub const IdeographicSymbolsAndPunctuation: Self = Self(267);
547    pub const IdeographicSymbols: Self = Self::IdeographicSymbolsAndPunctuation;
548    pub const Marchen: Self = Self(268);
549    pub const MongolianSupplement: Self = Self(269);
550    pub const MongolianSup: Self = Self::MongolianSupplement;
551    pub const Newa: Self = Self(270);
552    pub const Osage: Self = Self(271);
553    pub const Tangut: Self = Self(272);
554    pub const TangutComponents: Self = Self(273);
555    pub const CJKUnifiedIdeographsExtensionF: Self = Self(274);
556    pub const CJKExtF: Self = Self::CJKUnifiedIdeographsExtensionF;
557    pub const KanaExtendedA: Self = Self(275);
558    pub const KanaExtA: Self = Self::KanaExtendedA;
559    pub const MasaramGondi: Self = Self(276);
560    pub const Nushu: Self = Self(277);
561    pub const Soyombo: Self = Self(278);
562    pub const SyriacSupplement: Self = Self(279);
563    pub const SyriacSup: Self = Self::SyriacSupplement;
564    pub const ZanabazarSquare: Self = Self(280);
565    pub const ChessSymbols: Self = Self(281);
566    pub const Dogra: Self = Self(282);
567    pub const GeorgianExtended: Self = Self(283);
568    pub const GeorgianExt: Self = Self::GeorgianExtended;
569    pub const GunjalaGondi: Self = Self(284);
570    pub const HanifiRohingya: Self = Self(285);
571    pub const IndicSiyaqNumbers: Self = Self(286);
572    pub const Makasar: Self = Self(287);
573    pub const MayanNumerals: Self = Self(288);
574    pub const Medefaidrin: Self = Self(289);
575    pub const OldSogdian: Self = Self(290);
576    pub const Sogdian: Self = Self(291);
577    pub const EgyptianHieroglyphFormatControls: Self = Self(292);
578    pub const Elymaic: Self = Self(293);
579    pub const Nandinagari: Self = Self(294);
580    pub const NyiakengPuachueHmong: Self = Self(295);
581    pub const OttomanSiyaqNumbers: Self = Self(296);
582    pub const SmallKanaExtension: Self = Self(297);
583    pub const SmallKanaExt: Self = Self::SmallKanaExtension;
584    pub const SymbolsAndPictographsExtendedA: Self = Self(298);
585    pub const SymbolsAndPictographsExtA: Self = Self::SymbolsAndPictographsExtendedA;
586    pub const TamilSupplement: Self = Self(299);
587    pub const TamilSup: Self = Self::TamilSupplement;
588    pub const Wancho: Self = Self(300);
589    pub const Chorasmian: Self = Self(301);
590    pub const CJKUnifiedIdeographsExtensionG: Self = Self(302);
591    pub const CJKExtG: Self = Self::CJKUnifiedIdeographsExtensionG;
592    pub const DivesAkuru: Self = Self(303);
593    pub const KhitanSmallScript: Self = Self(304);
594    pub const LisuSupplement: Self = Self(305);
595    pub const LisuSup: Self = Self::LisuSupplement;
596    pub const SymbolsForLegacyComputing: Self = Self(306);
597    pub const TangutSupplement: Self = Self(307);
598    pub const TangutSup: Self = Self::TangutSupplement;
599    pub const Yezidi: Self = Self(308);
600    pub const ArabicExtendedB: Self = Self(309);
601    pub const ArabicExtB: Self = Self::ArabicExtendedB;
602    pub const CyproMinoan: Self = Self(310);
603    pub const EthiopicExtendedB: Self = Self(311);
604    pub const EthiopicExtB: Self = Self::EthiopicExtendedB;
605    pub const KanaExtendedB: Self = Self(312);
606    pub const KanaExtB: Self = Self::KanaExtendedB;
607    pub const LatinExtendedF: Self = Self(313);
608    pub const LatinExtF: Self = Self::LatinExtendedF;
609    pub const LatinExtendedG: Self = Self(314);
610    pub const LatinExtG: Self = Self::LatinExtendedG;
611    pub const OldUyghur: Self = Self(315);
612    pub const Tangsa: Self = Self(316);
613    pub const Toto: Self = Self(317);
614    pub const UnifiedCanadianAboriginalSyllabicsExtendedA: Self = Self(318);
615    pub const UCASExtA: Self = Self::UnifiedCanadianAboriginalSyllabicsExtendedA;
616    pub const Vithkuqi: Self = Self(319);
617    pub const ZnamennyMusicalNotation: Self = Self(320);
618    pub const ZnamennyMusic: Self = Self::ZnamennyMusicalNotation;
619    pub const ArabicExtendedC: Self = Self(321);
620    pub const ArabicExtC: Self = Self::ArabicExtendedC;
621    pub const CJKUnifiedIdeographsExtensionH: Self = Self(322);
622    pub const CJKExtH: Self = Self::CJKUnifiedIdeographsExtensionH;
623    pub const CyrillicExtendedD: Self = Self(323);
624    pub const CyrillicExtD: Self = Self::CyrillicExtendedD;
625    pub const DevanagariExtendedA: Self = Self(324);
626    pub const DevanagariExtA: Self = Self::DevanagariExtendedA;
627    pub const KaktovikNumerals: Self = Self(325);
628    pub const Kawi: Self = Self(326);
629    pub const NagMundari: Self = Self(327);
630    pub const CJKUnifiedIdeographsExtensionI: Self = Self(328);
631    pub const CJKExtI: Self = Self::CJKUnifiedIdeographsExtensionI;
632    pub const EgyptianHieroglyphsExtendedA: Self = Self(329);
633    pub const EgyptianHieroglyphsExtA: Self = Self::EgyptianHieroglyphsExtendedA;
634    pub const Garay: Self = Self(330);
635    pub const GurungKhema: Self = Self(331);
636    pub const KiratRai: Self = Self(332);
637    pub const MyanmarExtendedC: Self = Self(333);
638    pub const MyanmarExtC: Self = Self::MyanmarExtendedC;
639    pub const OlOnal: Self = Self(334);
640    pub const Sunuwar: Self = Self(335);
641    pub const SymbolsForLegacyComputingSupplement: Self = Self(336);
642    pub const SymbolsForLegacyComputingSup: Self = Self::SymbolsForLegacyComputingSupplement;
643    pub const Todhri: Self = Self(337);
644    pub const TuluTigalari: Self = Self(338);
645    pub const BeriaErfe: Self = Self(339);
646    pub const CJKUnifiedIdeographsExtensionJ: Self = Self(340);
647    pub const CJKExtJ: Self = Self::CJKUnifiedIdeographsExtensionJ;
648    pub const MiscellaneousSymbolsSupplement: Self = Self(341);
649    pub const MiscSymbolsSup: Self = Self::MiscellaneousSymbolsSupplement;
650    pub const SharadaSupplement: Self = Self(342);
651    pub const SharadaSup: Self = Self::SharadaSupplement;
652    pub const Sidetic: Self = Self(343);
653    pub const TaiYo: Self = Self(344);
654    pub const TangutComponentsSupplement: Self = Self(345);
655    pub const TangutComponentsSup: Self = Self::TangutComponentsSupplement;
656    pub const TolongSiki: Self = Self(346);
657    pub const ArchaicCuneiformNumerals: Self = Self(347);
658    pub const BengaliSupplement: Self = Self(348);
659    pub const BengaliSup: Self = Self::BengaliSupplement;
660    pub const Jurchen: Self = Self(349);
661    pub const JurchenRadicals: Self = Self(350);
662    pub const MiscellaneousSymbolsAndArrowsExtended: Self = Self(351);
663    pub const MiscArrowsExt: Self = Self::MiscellaneousSymbolsAndArrowsExtended;
664    pub const MusicalSymbolsSupplement: Self = Self(352);
665    pub const MusicSup: Self = Self::MusicalSymbolsSupplement;
666    pub const Seal: Self = Self(353);
667}
668
669#[cfg(feature = "datagen")]
670impl databake::Bake for Block {
671    fn bake(&self, env: &databake::CrateEnv) -> databake::TokenStream {
672        env.insert("icu_properties");
673        match *self {
674            Self::NoBlock => databake::quote!(icu_properties::props::Block::NoBlock),
675            Self::BasicLatin => databake::quote!(icu_properties::props::Block::BasicLatin),
676            Self::Latin1Supplement => databake::quote!(icu_properties::props::Block::Latin1Supplement),
677            Self::LatinExtendedA => databake::quote!(icu_properties::props::Block::LatinExtendedA),
678            Self::LatinExtendedB => databake::quote!(icu_properties::props::Block::LatinExtendedB),
679            Self::IPAExtensions => databake::quote!(icu_properties::props::Block::IPAExtensions),
680            Self::SpacingModifierLetters => databake::quote!(icu_properties::props::Block::SpacingModifierLetters),
681            Self::CombiningDiacriticalMarks => databake::quote!(icu_properties::props::Block::CombiningDiacriticalMarks),
682            Self::GreekAndCoptic => databake::quote!(icu_properties::props::Block::GreekAndCoptic),
683            Self::Cyrillic => databake::quote!(icu_properties::props::Block::Cyrillic),
684            Self::Armenian => databake::quote!(icu_properties::props::Block::Armenian),
685            Self::Hebrew => databake::quote!(icu_properties::props::Block::Hebrew),
686            Self::Arabic => databake::quote!(icu_properties::props::Block::Arabic),
687            Self::Syriac => databake::quote!(icu_properties::props::Block::Syriac),
688            Self::Thaana => databake::quote!(icu_properties::props::Block::Thaana),
689            Self::Devanagari => databake::quote!(icu_properties::props::Block::Devanagari),
690            Self::Bengali => databake::quote!(icu_properties::props::Block::Bengali),
691            Self::Gurmukhi => databake::quote!(icu_properties::props::Block::Gurmukhi),
692            Self::Gujarati => databake::quote!(icu_properties::props::Block::Gujarati),
693            Self::Oriya => databake::quote!(icu_properties::props::Block::Oriya),
694            Self::Tamil => databake::quote!(icu_properties::props::Block::Tamil),
695            Self::Telugu => databake::quote!(icu_properties::props::Block::Telugu),
696            Self::Kannada => databake::quote!(icu_properties::props::Block::Kannada),
697            Self::Malayalam => databake::quote!(icu_properties::props::Block::Malayalam),
698            Self::Sinhala => databake::quote!(icu_properties::props::Block::Sinhala),
699            Self::Thai => databake::quote!(icu_properties::props::Block::Thai),
700            Self::Lao => databake::quote!(icu_properties::props::Block::Lao),
701            Self::Tibetan => databake::quote!(icu_properties::props::Block::Tibetan),
702            Self::Myanmar => databake::quote!(icu_properties::props::Block::Myanmar),
703            Self::Georgian => databake::quote!(icu_properties::props::Block::Georgian),
704            Self::HangulJamo => databake::quote!(icu_properties::props::Block::HangulJamo),
705            Self::Ethiopic => databake::quote!(icu_properties::props::Block::Ethiopic),
706            Self::Cherokee => databake::quote!(icu_properties::props::Block::Cherokee),
707            Self::UnifiedCanadianAboriginalSyllabics => databake::quote!(icu_properties::props::Block::UnifiedCanadianAboriginalSyllabics),
708            Self::Ogham => databake::quote!(icu_properties::props::Block::Ogham),
709            Self::Runic => databake::quote!(icu_properties::props::Block::Runic),
710            Self::Khmer => databake::quote!(icu_properties::props::Block::Khmer),
711            Self::Mongolian => databake::quote!(icu_properties::props::Block::Mongolian),
712            Self::LatinExtendedAdditional => databake::quote!(icu_properties::props::Block::LatinExtendedAdditional),
713            Self::GreekExtended => databake::quote!(icu_properties::props::Block::GreekExtended),
714            Self::GeneralPunctuation => databake::quote!(icu_properties::props::Block::GeneralPunctuation),
715            Self::SuperscriptsAndSubscripts => databake::quote!(icu_properties::props::Block::SuperscriptsAndSubscripts),
716            Self::CurrencySymbols => databake::quote!(icu_properties::props::Block::CurrencySymbols),
717            Self::CombiningDiacriticalMarksForSymbols => databake::quote!(icu_properties::props::Block::CombiningDiacriticalMarksForSymbols),
718            Self::LetterlikeSymbols => databake::quote!(icu_properties::props::Block::LetterlikeSymbols),
719            Self::NumberForms => databake::quote!(icu_properties::props::Block::NumberForms),
720            Self::Arrows => databake::quote!(icu_properties::props::Block::Arrows),
721            Self::MathematicalOperators => databake::quote!(icu_properties::props::Block::MathematicalOperators),
722            Self::MiscellaneousTechnical => databake::quote!(icu_properties::props::Block::MiscellaneousTechnical),
723            Self::ControlPictures => databake::quote!(icu_properties::props::Block::ControlPictures),
724            Self::OpticalCharacterRecognition => databake::quote!(icu_properties::props::Block::OpticalCharacterRecognition),
725            Self::EnclosedAlphanumerics => databake::quote!(icu_properties::props::Block::EnclosedAlphanumerics),
726            Self::BoxDrawing => databake::quote!(icu_properties::props::Block::BoxDrawing),
727            Self::BlockElements => databake::quote!(icu_properties::props::Block::BlockElements),
728            Self::GeometricShapes => databake::quote!(icu_properties::props::Block::GeometricShapes),
729            Self::MiscellaneousSymbols => databake::quote!(icu_properties::props::Block::MiscellaneousSymbols),
730            Self::Dingbats => databake::quote!(icu_properties::props::Block::Dingbats),
731            Self::BraillePatterns => databake::quote!(icu_properties::props::Block::BraillePatterns),
732            Self::CJKRadicalsSupplement => databake::quote!(icu_properties::props::Block::CJKRadicalsSupplement),
733            Self::KangxiRadicals => databake::quote!(icu_properties::props::Block::KangxiRadicals),
734            Self::IdeographicDescriptionCharacters => databake::quote!(icu_properties::props::Block::IdeographicDescriptionCharacters),
735            Self::CJKSymbolsAndPunctuation => databake::quote!(icu_properties::props::Block::CJKSymbolsAndPunctuation),
736            Self::Hiragana => databake::quote!(icu_properties::props::Block::Hiragana),
737            Self::Katakana => databake::quote!(icu_properties::props::Block::Katakana),
738            Self::Bopomofo => databake::quote!(icu_properties::props::Block::Bopomofo),
739            Self::HangulCompatibilityJamo => databake::quote!(icu_properties::props::Block::HangulCompatibilityJamo),
740            Self::Kanbun => databake::quote!(icu_properties::props::Block::Kanbun),
741            Self::BopomofoExtended => databake::quote!(icu_properties::props::Block::BopomofoExtended),
742            Self::EnclosedCJKLettersAndMonths => databake::quote!(icu_properties::props::Block::EnclosedCJKLettersAndMonths),
743            Self::CJKCompatibility => databake::quote!(icu_properties::props::Block::CJKCompatibility),
744            Self::CJKUnifiedIdeographsExtensionA => databake::quote!(icu_properties::props::Block::CJKUnifiedIdeographsExtensionA),
745            Self::CJKUnifiedIdeographs => databake::quote!(icu_properties::props::Block::CJKUnifiedIdeographs),
746            Self::YiSyllables => databake::quote!(icu_properties::props::Block::YiSyllables),
747            Self::YiRadicals => databake::quote!(icu_properties::props::Block::YiRadicals),
748            Self::HangulSyllables => databake::quote!(icu_properties::props::Block::HangulSyllables),
749            Self::HighSurrogates => databake::quote!(icu_properties::props::Block::HighSurrogates),
750            Self::HighPrivateUseSurrogates => databake::quote!(icu_properties::props::Block::HighPrivateUseSurrogates),
751            Self::LowSurrogates => databake::quote!(icu_properties::props::Block::LowSurrogates),
752            Self::PrivateUseArea => databake::quote!(icu_properties::props::Block::PrivateUseArea),
753            Self::CJKCompatibilityIdeographs => databake::quote!(icu_properties::props::Block::CJKCompatibilityIdeographs),
754            Self::AlphabeticPresentationForms => databake::quote!(icu_properties::props::Block::AlphabeticPresentationForms),
755            Self::ArabicPresentationFormsA => databake::quote!(icu_properties::props::Block::ArabicPresentationFormsA),
756            Self::CombiningHalfMarks => databake::quote!(icu_properties::props::Block::CombiningHalfMarks),
757            Self::CJKCompatibilityForms => databake::quote!(icu_properties::props::Block::CJKCompatibilityForms),
758            Self::SmallFormVariants => databake::quote!(icu_properties::props::Block::SmallFormVariants),
759            Self::ArabicPresentationFormsB => databake::quote!(icu_properties::props::Block::ArabicPresentationFormsB),
760            Self::Specials => databake::quote!(icu_properties::props::Block::Specials),
761            Self::HalfwidthAndFullwidthForms => databake::quote!(icu_properties::props::Block::HalfwidthAndFullwidthForms),
762            Self::OldItalic => databake::quote!(icu_properties::props::Block::OldItalic),
763            Self::Gothic => databake::quote!(icu_properties::props::Block::Gothic),
764            Self::Deseret => databake::quote!(icu_properties::props::Block::Deseret),
765            Self::ByzantineMusicalSymbols => databake::quote!(icu_properties::props::Block::ByzantineMusicalSymbols),
766            Self::MusicalSymbols => databake::quote!(icu_properties::props::Block::MusicalSymbols),
767            Self::MathematicalAlphanumericSymbols => databake::quote!(icu_properties::props::Block::MathematicalAlphanumericSymbols),
768            Self::CJKUnifiedIdeographsExtensionB => databake::quote!(icu_properties::props::Block::CJKUnifiedIdeographsExtensionB),
769            Self::CJKCompatibilityIdeographsSupplement => databake::quote!(icu_properties::props::Block::CJKCompatibilityIdeographsSupplement),
770            Self::Tags => databake::quote!(icu_properties::props::Block::Tags),
771            Self::CyrillicSupplement => databake::quote!(icu_properties::props::Block::CyrillicSupplement),
772            Self::Tagalog => databake::quote!(icu_properties::props::Block::Tagalog),
773            Self::Hanunoo => databake::quote!(icu_properties::props::Block::Hanunoo),
774            Self::Buhid => databake::quote!(icu_properties::props::Block::Buhid),
775            Self::Tagbanwa => databake::quote!(icu_properties::props::Block::Tagbanwa),
776            Self::MiscellaneousMathematicalSymbolsA => databake::quote!(icu_properties::props::Block::MiscellaneousMathematicalSymbolsA),
777            Self::SupplementalArrowsA => databake::quote!(icu_properties::props::Block::SupplementalArrowsA),
778            Self::SupplementalArrowsB => databake::quote!(icu_properties::props::Block::SupplementalArrowsB),
779            Self::MiscellaneousMathematicalSymbolsB => databake::quote!(icu_properties::props::Block::MiscellaneousMathematicalSymbolsB),
780            Self::SupplementalMathematicalOperators => databake::quote!(icu_properties::props::Block::SupplementalMathematicalOperators),
781            Self::KatakanaPhoneticExtensions => databake::quote!(icu_properties::props::Block::KatakanaPhoneticExtensions),
782            Self::VariationSelectors => databake::quote!(icu_properties::props::Block::VariationSelectors),
783            Self::SupplementaryPrivateUseAreaA => databake::quote!(icu_properties::props::Block::SupplementaryPrivateUseAreaA),
784            Self::SupplementaryPrivateUseAreaB => databake::quote!(icu_properties::props::Block::SupplementaryPrivateUseAreaB),
785            Self::Limbu => databake::quote!(icu_properties::props::Block::Limbu),
786            Self::TaiLe => databake::quote!(icu_properties::props::Block::TaiLe),
787            Self::KhmerSymbols => databake::quote!(icu_properties::props::Block::KhmerSymbols),
788            Self::PhoneticExtensions => databake::quote!(icu_properties::props::Block::PhoneticExtensions),
789            Self::MiscellaneousSymbolsAndArrows => databake::quote!(icu_properties::props::Block::MiscellaneousSymbolsAndArrows),
790            Self::YijingHexagramSymbols => databake::quote!(icu_properties::props::Block::YijingHexagramSymbols),
791            Self::LinearBSyllabary => databake::quote!(icu_properties::props::Block::LinearBSyllabary),
792            Self::LinearBIdeograms => databake::quote!(icu_properties::props::Block::LinearBIdeograms),
793            Self::AegeanNumbers => databake::quote!(icu_properties::props::Block::AegeanNumbers),
794            Self::Ugaritic => databake::quote!(icu_properties::props::Block::Ugaritic),
795            Self::Shavian => databake::quote!(icu_properties::props::Block::Shavian),
796            Self::Osmanya => databake::quote!(icu_properties::props::Block::Osmanya),
797            Self::CypriotSyllabary => databake::quote!(icu_properties::props::Block::CypriotSyllabary),
798            Self::TaiXuanJingSymbols => databake::quote!(icu_properties::props::Block::TaiXuanJingSymbols),
799            Self::VariationSelectorsSupplement => databake::quote!(icu_properties::props::Block::VariationSelectorsSupplement),
800            Self::AncientGreekMusicalNotation => databake::quote!(icu_properties::props::Block::AncientGreekMusicalNotation),
801            Self::AncientGreekNumbers => databake::quote!(icu_properties::props::Block::AncientGreekNumbers),
802            Self::ArabicSupplement => databake::quote!(icu_properties::props::Block::ArabicSupplement),
803            Self::Buginese => databake::quote!(icu_properties::props::Block::Buginese),
804            Self::CJKStrokes => databake::quote!(icu_properties::props::Block::CJKStrokes),
805            Self::CombiningDiacriticalMarksSupplement => databake::quote!(icu_properties::props::Block::CombiningDiacriticalMarksSupplement),
806            Self::Coptic => databake::quote!(icu_properties::props::Block::Coptic),
807            Self::EthiopicExtended => databake::quote!(icu_properties::props::Block::EthiopicExtended),
808            Self::EthiopicSupplement => databake::quote!(icu_properties::props::Block::EthiopicSupplement),
809            Self::GeorgianSupplement => databake::quote!(icu_properties::props::Block::GeorgianSupplement),
810            Self::Glagolitic => databake::quote!(icu_properties::props::Block::Glagolitic),
811            Self::Kharoshthi => databake::quote!(icu_properties::props::Block::Kharoshthi),
812            Self::ModifierToneLetters => databake::quote!(icu_properties::props::Block::ModifierToneLetters),
813            Self::NewTaiLue => databake::quote!(icu_properties::props::Block::NewTaiLue),
814            Self::OldPersian => databake::quote!(icu_properties::props::Block::OldPersian),
815            Self::PhoneticExtensionsSupplement => databake::quote!(icu_properties::props::Block::PhoneticExtensionsSupplement),
816            Self::SupplementalPunctuation => databake::quote!(icu_properties::props::Block::SupplementalPunctuation),
817            Self::SylotiNagri => databake::quote!(icu_properties::props::Block::SylotiNagri),
818            Self::Tifinagh => databake::quote!(icu_properties::props::Block::Tifinagh),
819            Self::VerticalForms => databake::quote!(icu_properties::props::Block::VerticalForms),
820            Self::NKo => databake::quote!(icu_properties::props::Block::NKo),
821            Self::Balinese => databake::quote!(icu_properties::props::Block::Balinese),
822            Self::LatinExtendedC => databake::quote!(icu_properties::props::Block::LatinExtendedC),
823            Self::LatinExtendedD => databake::quote!(icu_properties::props::Block::LatinExtendedD),
824            Self::PhagsPa => databake::quote!(icu_properties::props::Block::PhagsPa),
825            Self::Phoenician => databake::quote!(icu_properties::props::Block::Phoenician),
826            Self::Cuneiform => databake::quote!(icu_properties::props::Block::Cuneiform),
827            Self::CuneiformNumbersAndPunctuation => databake::quote!(icu_properties::props::Block::CuneiformNumbersAndPunctuation),
828            Self::CountingRodNumerals => databake::quote!(icu_properties::props::Block::CountingRodNumerals),
829            Self::Sundanese => databake::quote!(icu_properties::props::Block::Sundanese),
830            Self::Lepcha => databake::quote!(icu_properties::props::Block::Lepcha),
831            Self::OlChiki => databake::quote!(icu_properties::props::Block::OlChiki),
832            Self::CyrillicExtendedA => databake::quote!(icu_properties::props::Block::CyrillicExtendedA),
833            Self::Vai => databake::quote!(icu_properties::props::Block::Vai),
834            Self::CyrillicExtendedB => databake::quote!(icu_properties::props::Block::CyrillicExtendedB),
835            Self::Saurashtra => databake::quote!(icu_properties::props::Block::Saurashtra),
836            Self::KayahLi => databake::quote!(icu_properties::props::Block::KayahLi),
837            Self::Rejang => databake::quote!(icu_properties::props::Block::Rejang),
838            Self::Cham => databake::quote!(icu_properties::props::Block::Cham),
839            Self::AncientSymbols => databake::quote!(icu_properties::props::Block::AncientSymbols),
840            Self::PhaistosDisc => databake::quote!(icu_properties::props::Block::PhaistosDisc),
841            Self::Lycian => databake::quote!(icu_properties::props::Block::Lycian),
842            Self::Carian => databake::quote!(icu_properties::props::Block::Carian),
843            Self::Lydian => databake::quote!(icu_properties::props::Block::Lydian),
844            Self::MahjongTiles => databake::quote!(icu_properties::props::Block::MahjongTiles),
845            Self::DominoTiles => databake::quote!(icu_properties::props::Block::DominoTiles),
846            Self::Samaritan => databake::quote!(icu_properties::props::Block::Samaritan),
847            Self::UnifiedCanadianAboriginalSyllabicsExtended => databake::quote!(icu_properties::props::Block::UnifiedCanadianAboriginalSyllabicsExtended),
848            Self::TaiTham => databake::quote!(icu_properties::props::Block::TaiTham),
849            Self::VedicExtensions => databake::quote!(icu_properties::props::Block::VedicExtensions),
850            Self::Lisu => databake::quote!(icu_properties::props::Block::Lisu),
851            Self::Bamum => databake::quote!(icu_properties::props::Block::Bamum),
852            Self::CommonIndicNumberForms => databake::quote!(icu_properties::props::Block::CommonIndicNumberForms),
853            Self::DevanagariExtended => databake::quote!(icu_properties::props::Block::DevanagariExtended),
854            Self::HangulJamoExtendedA => databake::quote!(icu_properties::props::Block::HangulJamoExtendedA),
855            Self::Javanese => databake::quote!(icu_properties::props::Block::Javanese),
856            Self::MyanmarExtendedA => databake::quote!(icu_properties::props::Block::MyanmarExtendedA),
857            Self::TaiViet => databake::quote!(icu_properties::props::Block::TaiViet),
858            Self::MeeteiMayek => databake::quote!(icu_properties::props::Block::MeeteiMayek),
859            Self::HangulJamoExtendedB => databake::quote!(icu_properties::props::Block::HangulJamoExtendedB),
860            Self::ImperialAramaic => databake::quote!(icu_properties::props::Block::ImperialAramaic),
861            Self::OldSouthArabian => databake::quote!(icu_properties::props::Block::OldSouthArabian),
862            Self::Avestan => databake::quote!(icu_properties::props::Block::Avestan),
863            Self::InscriptionalParthian => databake::quote!(icu_properties::props::Block::InscriptionalParthian),
864            Self::InscriptionalPahlavi => databake::quote!(icu_properties::props::Block::InscriptionalPahlavi),
865            Self::OldTurkic => databake::quote!(icu_properties::props::Block::OldTurkic),
866            Self::RumiNumeralSymbols => databake::quote!(icu_properties::props::Block::RumiNumeralSymbols),
867            Self::Kaithi => databake::quote!(icu_properties::props::Block::Kaithi),
868            Self::EgyptianHieroglyphs => databake::quote!(icu_properties::props::Block::EgyptianHieroglyphs),
869            Self::EnclosedAlphanumericSupplement => databake::quote!(icu_properties::props::Block::EnclosedAlphanumericSupplement),
870            Self::EnclosedIdeographicSupplement => databake::quote!(icu_properties::props::Block::EnclosedIdeographicSupplement),
871            Self::CJKUnifiedIdeographsExtensionC => databake::quote!(icu_properties::props::Block::CJKUnifiedIdeographsExtensionC),
872            Self::Mandaic => databake::quote!(icu_properties::props::Block::Mandaic),
873            Self::Batak => databake::quote!(icu_properties::props::Block::Batak),
874            Self::EthiopicExtendedA => databake::quote!(icu_properties::props::Block::EthiopicExtendedA),
875            Self::Brahmi => databake::quote!(icu_properties::props::Block::Brahmi),
876            Self::BamumSupplement => databake::quote!(icu_properties::props::Block::BamumSupplement),
877            Self::KanaSupplement => databake::quote!(icu_properties::props::Block::KanaSupplement),
878            Self::PlayingCards => databake::quote!(icu_properties::props::Block::PlayingCards),
879            Self::MiscellaneousSymbolsAndPictographs => databake::quote!(icu_properties::props::Block::MiscellaneousSymbolsAndPictographs),
880            Self::Emoticons => databake::quote!(icu_properties::props::Block::Emoticons),
881            Self::TransportAndMapSymbols => databake::quote!(icu_properties::props::Block::TransportAndMapSymbols),
882            Self::AlchemicalSymbols => databake::quote!(icu_properties::props::Block::AlchemicalSymbols),
883            Self::CJKUnifiedIdeographsExtensionD => databake::quote!(icu_properties::props::Block::CJKUnifiedIdeographsExtensionD),
884            Self::ArabicExtendedA => databake::quote!(icu_properties::props::Block::ArabicExtendedA),
885            Self::ArabicMathematicalAlphabeticSymbols => databake::quote!(icu_properties::props::Block::ArabicMathematicalAlphabeticSymbols),
886            Self::Chakma => databake::quote!(icu_properties::props::Block::Chakma),
887            Self::MeeteiMayekExtensions => databake::quote!(icu_properties::props::Block::MeeteiMayekExtensions),
888            Self::MeroiticCursive => databake::quote!(icu_properties::props::Block::MeroiticCursive),
889            Self::MeroiticHieroglyphs => databake::quote!(icu_properties::props::Block::MeroiticHieroglyphs),
890            Self::Miao => databake::quote!(icu_properties::props::Block::Miao),
891            Self::Sharada => databake::quote!(icu_properties::props::Block::Sharada),
892            Self::SoraSompeng => databake::quote!(icu_properties::props::Block::SoraSompeng),
893            Self::SundaneseSupplement => databake::quote!(icu_properties::props::Block::SundaneseSupplement),
894            Self::Takri => databake::quote!(icu_properties::props::Block::Takri),
895            Self::BassaVah => databake::quote!(icu_properties::props::Block::BassaVah),
896            Self::CaucasianAlbanian => databake::quote!(icu_properties::props::Block::CaucasianAlbanian),
897            Self::CopticEpactNumbers => databake::quote!(icu_properties::props::Block::CopticEpactNumbers),
898            Self::CombiningDiacriticalMarksExtended => databake::quote!(icu_properties::props::Block::CombiningDiacriticalMarksExtended),
899            Self::Duployan => databake::quote!(icu_properties::props::Block::Duployan),
900            Self::Elbasan => databake::quote!(icu_properties::props::Block::Elbasan),
901            Self::GeometricShapesExtended => databake::quote!(icu_properties::props::Block::GeometricShapesExtended),
902            Self::Grantha => databake::quote!(icu_properties::props::Block::Grantha),
903            Self::Khojki => databake::quote!(icu_properties::props::Block::Khojki),
904            Self::Khudawadi => databake::quote!(icu_properties::props::Block::Khudawadi),
905            Self::LatinExtendedE => databake::quote!(icu_properties::props::Block::LatinExtendedE),
906            Self::LinearA => databake::quote!(icu_properties::props::Block::LinearA),
907            Self::Mahajani => databake::quote!(icu_properties::props::Block::Mahajani),
908            Self::Manichaean => databake::quote!(icu_properties::props::Block::Manichaean),
909            Self::MendeKikakui => databake::quote!(icu_properties::props::Block::MendeKikakui),
910            Self::Modi => databake::quote!(icu_properties::props::Block::Modi),
911            Self::Mro => databake::quote!(icu_properties::props::Block::Mro),
912            Self::MyanmarExtendedB => databake::quote!(icu_properties::props::Block::MyanmarExtendedB),
913            Self::Nabataean => databake::quote!(icu_properties::props::Block::Nabataean),
914            Self::OldNorthArabian => databake::quote!(icu_properties::props::Block::OldNorthArabian),
915            Self::OldPermic => databake::quote!(icu_properties::props::Block::OldPermic),
916            Self::OrnamentalDingbats => databake::quote!(icu_properties::props::Block::OrnamentalDingbats),
917            Self::PahawhHmong => databake::quote!(icu_properties::props::Block::PahawhHmong),
918            Self::Palmyrene => databake::quote!(icu_properties::props::Block::Palmyrene),
919            Self::PauCinHau => databake::quote!(icu_properties::props::Block::PauCinHau),
920            Self::PsalterPahlavi => databake::quote!(icu_properties::props::Block::PsalterPahlavi),
921            Self::ShorthandFormatControls => databake::quote!(icu_properties::props::Block::ShorthandFormatControls),
922            Self::Siddham => databake::quote!(icu_properties::props::Block::Siddham),
923            Self::SinhalaArchaicNumbers => databake::quote!(icu_properties::props::Block::SinhalaArchaicNumbers),
924            Self::SupplementalArrowsC => databake::quote!(icu_properties::props::Block::SupplementalArrowsC),
925            Self::Tirhuta => databake::quote!(icu_properties::props::Block::Tirhuta),
926            Self::WarangCiti => databake::quote!(icu_properties::props::Block::WarangCiti),
927            Self::Ahom => databake::quote!(icu_properties::props::Block::Ahom),
928            Self::AnatolianHieroglyphs => databake::quote!(icu_properties::props::Block::AnatolianHieroglyphs),
929            Self::CherokeeSupplement => databake::quote!(icu_properties::props::Block::CherokeeSupplement),
930            Self::CJKUnifiedIdeographsExtensionE => databake::quote!(icu_properties::props::Block::CJKUnifiedIdeographsExtensionE),
931            Self::EarlyDynasticCuneiform => databake::quote!(icu_properties::props::Block::EarlyDynasticCuneiform),
932            Self::Hatran => databake::quote!(icu_properties::props::Block::Hatran),
933            Self::Multani => databake::quote!(icu_properties::props::Block::Multani),
934            Self::OldHungarian => databake::quote!(icu_properties::props::Block::OldHungarian),
935            Self::SupplementalSymbolsAndPictographs => databake::quote!(icu_properties::props::Block::SupplementalSymbolsAndPictographs),
936            Self::SuttonSignWriting => databake::quote!(icu_properties::props::Block::SuttonSignWriting),
937            Self::Adlam => databake::quote!(icu_properties::props::Block::Adlam),
938            Self::Bhaiksuki => databake::quote!(icu_properties::props::Block::Bhaiksuki),
939            Self::CyrillicExtendedC => databake::quote!(icu_properties::props::Block::CyrillicExtendedC),
940            Self::GlagoliticSupplement => databake::quote!(icu_properties::props::Block::GlagoliticSupplement),
941            Self::IdeographicSymbolsAndPunctuation => databake::quote!(icu_properties::props::Block::IdeographicSymbolsAndPunctuation),
942            Self::Marchen => databake::quote!(icu_properties::props::Block::Marchen),
943            Self::MongolianSupplement => databake::quote!(icu_properties::props::Block::MongolianSupplement),
944            Self::Newa => databake::quote!(icu_properties::props::Block::Newa),
945            Self::Osage => databake::quote!(icu_properties::props::Block::Osage),
946            Self::Tangut => databake::quote!(icu_properties::props::Block::Tangut),
947            Self::TangutComponents => databake::quote!(icu_properties::props::Block::TangutComponents),
948            Self::CJKUnifiedIdeographsExtensionF => databake::quote!(icu_properties::props::Block::CJKUnifiedIdeographsExtensionF),
949            Self::KanaExtendedA => databake::quote!(icu_properties::props::Block::KanaExtendedA),
950            Self::MasaramGondi => databake::quote!(icu_properties::props::Block::MasaramGondi),
951            Self::Nushu => databake::quote!(icu_properties::props::Block::Nushu),
952            Self::Soyombo => databake::quote!(icu_properties::props::Block::Soyombo),
953            Self::SyriacSupplement => databake::quote!(icu_properties::props::Block::SyriacSupplement),
954            Self::ZanabazarSquare => databake::quote!(icu_properties::props::Block::ZanabazarSquare),
955            Self::ChessSymbols => databake::quote!(icu_properties::props::Block::ChessSymbols),
956            Self::Dogra => databake::quote!(icu_properties::props::Block::Dogra),
957            Self::GeorgianExtended => databake::quote!(icu_properties::props::Block::GeorgianExtended),
958            Self::GunjalaGondi => databake::quote!(icu_properties::props::Block::GunjalaGondi),
959            Self::HanifiRohingya => databake::quote!(icu_properties::props::Block::HanifiRohingya),
960            Self::IndicSiyaqNumbers => databake::quote!(icu_properties::props::Block::IndicSiyaqNumbers),
961            Self::Makasar => databake::quote!(icu_properties::props::Block::Makasar),
962            Self::MayanNumerals => databake::quote!(icu_properties::props::Block::MayanNumerals),
963            Self::Medefaidrin => databake::quote!(icu_properties::props::Block::Medefaidrin),
964            Self::OldSogdian => databake::quote!(icu_properties::props::Block::OldSogdian),
965            Self::Sogdian => databake::quote!(icu_properties::props::Block::Sogdian),
966            Self::EgyptianHieroglyphFormatControls => databake::quote!(icu_properties::props::Block::EgyptianHieroglyphFormatControls),
967            Self::Elymaic => databake::quote!(icu_properties::props::Block::Elymaic),
968            Self::Nandinagari => databake::quote!(icu_properties::props::Block::Nandinagari),
969            Self::NyiakengPuachueHmong => databake::quote!(icu_properties::props::Block::NyiakengPuachueHmong),
970            Self::OttomanSiyaqNumbers => databake::quote!(icu_properties::props::Block::OttomanSiyaqNumbers),
971            Self::SmallKanaExtension => databake::quote!(icu_properties::props::Block::SmallKanaExtension),
972            Self::SymbolsAndPictographsExtendedA => databake::quote!(icu_properties::props::Block::SymbolsAndPictographsExtendedA),
973            Self::TamilSupplement => databake::quote!(icu_properties::props::Block::TamilSupplement),
974            Self::Wancho => databake::quote!(icu_properties::props::Block::Wancho),
975            Self::Chorasmian => databake::quote!(icu_properties::props::Block::Chorasmian),
976            Self::CJKUnifiedIdeographsExtensionG => databake::quote!(icu_properties::props::Block::CJKUnifiedIdeographsExtensionG),
977            Self::DivesAkuru => databake::quote!(icu_properties::props::Block::DivesAkuru),
978            Self::KhitanSmallScript => databake::quote!(icu_properties::props::Block::KhitanSmallScript),
979            Self::LisuSupplement => databake::quote!(icu_properties::props::Block::LisuSupplement),
980            Self::SymbolsForLegacyComputing => databake::quote!(icu_properties::props::Block::SymbolsForLegacyComputing),
981            Self::TangutSupplement => databake::quote!(icu_properties::props::Block::TangutSupplement),
982            Self::Yezidi => databake::quote!(icu_properties::props::Block::Yezidi),
983            Self::ArabicExtendedB => databake::quote!(icu_properties::props::Block::ArabicExtendedB),
984            Self::CyproMinoan => databake::quote!(icu_properties::props::Block::CyproMinoan),
985            Self::EthiopicExtendedB => databake::quote!(icu_properties::props::Block::EthiopicExtendedB),
986            Self::KanaExtendedB => databake::quote!(icu_properties::props::Block::KanaExtendedB),
987            Self::LatinExtendedF => databake::quote!(icu_properties::props::Block::LatinExtendedF),
988            Self::LatinExtendedG => databake::quote!(icu_properties::props::Block::LatinExtendedG),
989            Self::OldUyghur => databake::quote!(icu_properties::props::Block::OldUyghur),
990            Self::Tangsa => databake::quote!(icu_properties::props::Block::Tangsa),
991            Self::Toto => databake::quote!(icu_properties::props::Block::Toto),
992            Self::UnifiedCanadianAboriginalSyllabicsExtendedA => databake::quote!(icu_properties::props::Block::UnifiedCanadianAboriginalSyllabicsExtendedA),
993            Self::Vithkuqi => databake::quote!(icu_properties::props::Block::Vithkuqi),
994            Self::ZnamennyMusicalNotation => databake::quote!(icu_properties::props::Block::ZnamennyMusicalNotation),
995            Self::ArabicExtendedC => databake::quote!(icu_properties::props::Block::ArabicExtendedC),
996            Self::CJKUnifiedIdeographsExtensionH => databake::quote!(icu_properties::props::Block::CJKUnifiedIdeographsExtensionH),
997            Self::CyrillicExtendedD => databake::quote!(icu_properties::props::Block::CyrillicExtendedD),
998            Self::DevanagariExtendedA => databake::quote!(icu_properties::props::Block::DevanagariExtendedA),
999            Self::KaktovikNumerals => databake::quote!(icu_properties::props::Block::KaktovikNumerals),
1000            Self::Kawi => databake::quote!(icu_properties::props::Block::Kawi),
1001            Self::NagMundari => databake::quote!(icu_properties::props::Block::NagMundari),
1002            Self::CJKUnifiedIdeographsExtensionI => databake::quote!(icu_properties::props::Block::CJKUnifiedIdeographsExtensionI),
1003            Self::EgyptianHieroglyphsExtendedA => databake::quote!(icu_properties::props::Block::EgyptianHieroglyphsExtendedA),
1004            Self::Garay => databake::quote!(icu_properties::props::Block::Garay),
1005            Self::GurungKhema => databake::quote!(icu_properties::props::Block::GurungKhema),
1006            Self::KiratRai => databake::quote!(icu_properties::props::Block::KiratRai),
1007            Self::MyanmarExtendedC => databake::quote!(icu_properties::props::Block::MyanmarExtendedC),
1008            Self::OlOnal => databake::quote!(icu_properties::props::Block::OlOnal),
1009            Self::Sunuwar => databake::quote!(icu_properties::props::Block::Sunuwar),
1010            Self::SymbolsForLegacyComputingSupplement => databake::quote!(icu_properties::props::Block::SymbolsForLegacyComputingSupplement),
1011            Self::Todhri => databake::quote!(icu_properties::props::Block::Todhri),
1012            Self::TuluTigalari => databake::quote!(icu_properties::props::Block::TuluTigalari),
1013            Self::BeriaErfe => databake::quote!(icu_properties::props::Block::BeriaErfe),
1014            Self::CJKUnifiedIdeographsExtensionJ => databake::quote!(icu_properties::props::Block::CJKUnifiedIdeographsExtensionJ),
1015            Self::MiscellaneousSymbolsSupplement => databake::quote!(icu_properties::props::Block::MiscellaneousSymbolsSupplement),
1016            Self::SharadaSupplement => databake::quote!(icu_properties::props::Block::SharadaSupplement),
1017            Self::Sidetic => databake::quote!(icu_properties::props::Block::Sidetic),
1018            Self::TaiYo => databake::quote!(icu_properties::props::Block::TaiYo),
1019            Self::TangutComponentsSupplement => databake::quote!(icu_properties::props::Block::TangutComponentsSupplement),
1020            Self::TolongSiki => databake::quote!(icu_properties::props::Block::TolongSiki),
1021            Self::ArchaicCuneiformNumerals => databake::quote!(icu_properties::props::Block::ArchaicCuneiformNumerals),
1022            Self::BengaliSupplement => databake::quote!(icu_properties::props::Block::BengaliSupplement),
1023            Self::Jurchen => databake::quote!(icu_properties::props::Block::Jurchen),
1024            Self::JurchenRadicals => databake::quote!(icu_properties::props::Block::JurchenRadicals),
1025            Self::MiscellaneousSymbolsAndArrowsExtended => databake::quote!(icu_properties::props::Block::MiscellaneousSymbolsAndArrowsExtended),
1026            Self::MusicalSymbolsSupplement => databake::quote!(icu_properties::props::Block::MusicalSymbolsSupplement),
1027            Self::Seal => databake::quote!(icu_properties::props::Block::Seal),
1028            Self(v) => databake::quote!(icu_properties::props::Block(#v)),
1029        }
1030    }
1031}
1032
1033
1034impl From<Block> for u16  {
1035    fn from(other: Block) -> Self {
1036        other.0
1037    }
1038}
1039
1040impl Block {
1041    /// Deprecated
1042    #[deprecated]
1043    pub const ALL_VALUES: &'static [Self] = &[
1044        Self::NoBlock,
1045        Self::BasicLatin,
1046        Self::Latin1Supplement,
1047        Self::LatinExtendedA,
1048        Self::LatinExtendedB,
1049        Self::IPAExtensions,
1050        Self::SpacingModifierLetters,
1051        Self::CombiningDiacriticalMarks,
1052        Self::GreekAndCoptic,
1053        Self::Cyrillic,
1054        Self::Armenian,
1055        Self::Hebrew,
1056        Self::Arabic,
1057        Self::Syriac,
1058        Self::Thaana,
1059        Self::Devanagari,
1060        Self::Bengali,
1061        Self::Gurmukhi,
1062        Self::Gujarati,
1063        Self::Oriya,
1064        Self::Tamil,
1065        Self::Telugu,
1066        Self::Kannada,
1067        Self::Malayalam,
1068        Self::Sinhala,
1069        Self::Thai,
1070        Self::Lao,
1071        Self::Tibetan,
1072        Self::Myanmar,
1073        Self::Georgian,
1074        Self::HangulJamo,
1075        Self::Ethiopic,
1076        Self::Cherokee,
1077        Self::UnifiedCanadianAboriginalSyllabics,
1078        Self::Ogham,
1079        Self::Runic,
1080        Self::Khmer,
1081        Self::Mongolian,
1082        Self::LatinExtendedAdditional,
1083        Self::GreekExtended,
1084        Self::GeneralPunctuation,
1085        Self::SuperscriptsAndSubscripts,
1086        Self::CurrencySymbols,
1087        Self::CombiningDiacriticalMarksForSymbols,
1088        Self::LetterlikeSymbols,
1089        Self::NumberForms,
1090        Self::Arrows,
1091        Self::MathematicalOperators,
1092        Self::MiscellaneousTechnical,
1093        Self::ControlPictures,
1094        Self::OpticalCharacterRecognition,
1095        Self::EnclosedAlphanumerics,
1096        Self::BoxDrawing,
1097        Self::BlockElements,
1098        Self::GeometricShapes,
1099        Self::MiscellaneousSymbols,
1100        Self::Dingbats,
1101        Self::BraillePatterns,
1102        Self::CJKRadicalsSupplement,
1103        Self::KangxiRadicals,
1104        Self::IdeographicDescriptionCharacters,
1105        Self::CJKSymbolsAndPunctuation,
1106        Self::Hiragana,
1107        Self::Katakana,
1108        Self::Bopomofo,
1109        Self::HangulCompatibilityJamo,
1110        Self::Kanbun,
1111        Self::BopomofoExtended,
1112        Self::EnclosedCJKLettersAndMonths,
1113        Self::CJKCompatibility,
1114        Self::CJKUnifiedIdeographsExtensionA,
1115        Self::CJKUnifiedIdeographs,
1116        Self::YiSyllables,
1117        Self::YiRadicals,
1118        Self::HangulSyllables,
1119        Self::HighSurrogates,
1120        Self::HighPrivateUseSurrogates,
1121        Self::LowSurrogates,
1122        Self::PrivateUseArea,
1123        Self::CJKCompatibilityIdeographs,
1124        Self::AlphabeticPresentationForms,
1125        Self::ArabicPresentationFormsA,
1126        Self::CombiningHalfMarks,
1127        Self::CJKCompatibilityForms,
1128        Self::SmallFormVariants,
1129        Self::ArabicPresentationFormsB,
1130        Self::Specials,
1131        Self::HalfwidthAndFullwidthForms,
1132        Self::OldItalic,
1133        Self::Gothic,
1134        Self::Deseret,
1135        Self::ByzantineMusicalSymbols,
1136        Self::MusicalSymbols,
1137        Self::MathematicalAlphanumericSymbols,
1138        Self::CJKUnifiedIdeographsExtensionB,
1139        Self::CJKCompatibilityIdeographsSupplement,
1140        Self::Tags,
1141        Self::CyrillicSupplement,
1142        Self::Tagalog,
1143        Self::Hanunoo,
1144        Self::Buhid,
1145        Self::Tagbanwa,
1146        Self::MiscellaneousMathematicalSymbolsA,
1147        Self::SupplementalArrowsA,
1148        Self::SupplementalArrowsB,
1149        Self::MiscellaneousMathematicalSymbolsB,
1150        Self::SupplementalMathematicalOperators,
1151        Self::KatakanaPhoneticExtensions,
1152        Self::VariationSelectors,
1153        Self::SupplementaryPrivateUseAreaA,
1154        Self::SupplementaryPrivateUseAreaB,
1155        Self::Limbu,
1156        Self::TaiLe,
1157        Self::KhmerSymbols,
1158        Self::PhoneticExtensions,
1159        Self::MiscellaneousSymbolsAndArrows,
1160        Self::YijingHexagramSymbols,
1161        Self::LinearBSyllabary,
1162        Self::LinearBIdeograms,
1163        Self::AegeanNumbers,
1164        Self::Ugaritic,
1165        Self::Shavian,
1166        Self::Osmanya,
1167        Self::CypriotSyllabary,
1168        Self::TaiXuanJingSymbols,
1169        Self::VariationSelectorsSupplement,
1170        Self::AncientGreekMusicalNotation,
1171        Self::AncientGreekNumbers,
1172        Self::ArabicSupplement,
1173        Self::Buginese,
1174        Self::CJKStrokes,
1175        Self::CombiningDiacriticalMarksSupplement,
1176        Self::Coptic,
1177        Self::EthiopicExtended,
1178        Self::EthiopicSupplement,
1179        Self::GeorgianSupplement,
1180        Self::Glagolitic,
1181        Self::Kharoshthi,
1182        Self::ModifierToneLetters,
1183        Self::NewTaiLue,
1184        Self::OldPersian,
1185        Self::PhoneticExtensionsSupplement,
1186        Self::SupplementalPunctuation,
1187        Self::SylotiNagri,
1188        Self::Tifinagh,
1189        Self::VerticalForms,
1190        Self::NKo,
1191        Self::Balinese,
1192        Self::LatinExtendedC,
1193        Self::LatinExtendedD,
1194        Self::PhagsPa,
1195        Self::Phoenician,
1196        Self::Cuneiform,
1197        Self::CuneiformNumbersAndPunctuation,
1198        Self::CountingRodNumerals,
1199        Self::Sundanese,
1200        Self::Lepcha,
1201        Self::OlChiki,
1202        Self::CyrillicExtendedA,
1203        Self::Vai,
1204        Self::CyrillicExtendedB,
1205        Self::Saurashtra,
1206        Self::KayahLi,
1207        Self::Rejang,
1208        Self::Cham,
1209        Self::AncientSymbols,
1210        Self::PhaistosDisc,
1211        Self::Lycian,
1212        Self::Carian,
1213        Self::Lydian,
1214        Self::MahjongTiles,
1215        Self::DominoTiles,
1216        Self::Samaritan,
1217        Self::UnifiedCanadianAboriginalSyllabicsExtended,
1218        Self::TaiTham,
1219        Self::VedicExtensions,
1220        Self::Lisu,
1221        Self::Bamum,
1222        Self::CommonIndicNumberForms,
1223        Self::DevanagariExtended,
1224        Self::HangulJamoExtendedA,
1225        Self::Javanese,
1226        Self::MyanmarExtendedA,
1227        Self::TaiViet,
1228        Self::MeeteiMayek,
1229        Self::HangulJamoExtendedB,
1230        Self::ImperialAramaic,
1231        Self::OldSouthArabian,
1232        Self::Avestan,
1233        Self::InscriptionalParthian,
1234        Self::InscriptionalPahlavi,
1235        Self::OldTurkic,
1236        Self::RumiNumeralSymbols,
1237        Self::Kaithi,
1238        Self::EgyptianHieroglyphs,
1239        Self::EnclosedAlphanumericSupplement,
1240        Self::EnclosedIdeographicSupplement,
1241        Self::CJKUnifiedIdeographsExtensionC,
1242        Self::Mandaic,
1243        Self::Batak,
1244        Self::EthiopicExtendedA,
1245        Self::Brahmi,
1246        Self::BamumSupplement,
1247        Self::KanaSupplement,
1248        Self::PlayingCards,
1249        Self::MiscellaneousSymbolsAndPictographs,
1250        Self::Emoticons,
1251        Self::TransportAndMapSymbols,
1252        Self::AlchemicalSymbols,
1253        Self::CJKUnifiedIdeographsExtensionD,
1254        Self::ArabicExtendedA,
1255        Self::ArabicMathematicalAlphabeticSymbols,
1256        Self::Chakma,
1257        Self::MeeteiMayekExtensions,
1258        Self::MeroiticCursive,
1259        Self::MeroiticHieroglyphs,
1260        Self::Miao,
1261        Self::Sharada,
1262        Self::SoraSompeng,
1263        Self::SundaneseSupplement,
1264        Self::Takri,
1265        Self::BassaVah,
1266        Self::CaucasianAlbanian,
1267        Self::CopticEpactNumbers,
1268        Self::CombiningDiacriticalMarksExtended,
1269        Self::Duployan,
1270        Self::Elbasan,
1271        Self::GeometricShapesExtended,
1272        Self::Grantha,
1273        Self::Khojki,
1274        Self::Khudawadi,
1275        Self::LatinExtendedE,
1276        Self::LinearA,
1277        Self::Mahajani,
1278        Self::Manichaean,
1279        Self::MendeKikakui,
1280        Self::Modi,
1281        Self::Mro,
1282        Self::MyanmarExtendedB,
1283        Self::Nabataean,
1284        Self::OldNorthArabian,
1285        Self::OldPermic,
1286        Self::OrnamentalDingbats,
1287        Self::PahawhHmong,
1288        Self::Palmyrene,
1289        Self::PauCinHau,
1290        Self::PsalterPahlavi,
1291        Self::ShorthandFormatControls,
1292        Self::Siddham,
1293        Self::SinhalaArchaicNumbers,
1294        Self::SupplementalArrowsC,
1295        Self::Tirhuta,
1296        Self::WarangCiti,
1297        Self::Ahom,
1298        Self::AnatolianHieroglyphs,
1299        Self::CherokeeSupplement,
1300        Self::CJKUnifiedIdeographsExtensionE,
1301        Self::EarlyDynasticCuneiform,
1302        Self::Hatran,
1303        Self::Multani,
1304        Self::OldHungarian,
1305        Self::SupplementalSymbolsAndPictographs,
1306        Self::SuttonSignWriting,
1307        Self::Adlam,
1308        Self::Bhaiksuki,
1309        Self::CyrillicExtendedC,
1310        Self::GlagoliticSupplement,
1311        Self::IdeographicSymbolsAndPunctuation,
1312        Self::Marchen,
1313        Self::MongolianSupplement,
1314        Self::Newa,
1315        Self::Osage,
1316        Self::Tangut,
1317        Self::TangutComponents,
1318        Self::CJKUnifiedIdeographsExtensionF,
1319        Self::KanaExtendedA,
1320        Self::MasaramGondi,
1321        Self::Nushu,
1322        Self::Soyombo,
1323        Self::SyriacSupplement,
1324        Self::ZanabazarSquare,
1325        Self::ChessSymbols,
1326        Self::Dogra,
1327        Self::GeorgianExtended,
1328        Self::GunjalaGondi,
1329        Self::HanifiRohingya,
1330        Self::IndicSiyaqNumbers,
1331        Self::Makasar,
1332        Self::MayanNumerals,
1333        Self::Medefaidrin,
1334        Self::OldSogdian,
1335        Self::Sogdian,
1336        Self::EgyptianHieroglyphFormatControls,
1337        Self::Elymaic,
1338        Self::Nandinagari,
1339        Self::NyiakengPuachueHmong,
1340        Self::OttomanSiyaqNumbers,
1341        Self::SmallKanaExtension,
1342        Self::SymbolsAndPictographsExtendedA,
1343        Self::TamilSupplement,
1344        Self::Wancho,
1345        Self::Chorasmian,
1346        Self::CJKUnifiedIdeographsExtensionG,
1347        Self::DivesAkuru,
1348        Self::KhitanSmallScript,
1349        Self::LisuSupplement,
1350        Self::SymbolsForLegacyComputing,
1351        Self::TangutSupplement,
1352        Self::Yezidi,
1353        Self::ArabicExtendedB,
1354        Self::CyproMinoan,
1355        Self::EthiopicExtendedB,
1356        Self::KanaExtendedB,
1357        Self::LatinExtendedF,
1358        Self::LatinExtendedG,
1359        Self::OldUyghur,
1360        Self::Tangsa,
1361        Self::Toto,
1362        Self::UnifiedCanadianAboriginalSyllabicsExtendedA,
1363        Self::Vithkuqi,
1364        Self::ZnamennyMusicalNotation,
1365        Self::ArabicExtendedC,
1366        Self::CJKUnifiedIdeographsExtensionH,
1367        Self::CyrillicExtendedD,
1368        Self::DevanagariExtendedA,
1369        Self::KaktovikNumerals,
1370        Self::Kawi,
1371        Self::NagMundari,
1372        Self::CJKUnifiedIdeographsExtensionI,
1373        Self::EgyptianHieroglyphsExtendedA,
1374        Self::Garay,
1375        Self::GurungKhema,
1376        Self::KiratRai,
1377        Self::MyanmarExtendedC,
1378        Self::OlOnal,
1379        Self::Sunuwar,
1380        Self::SymbolsForLegacyComputingSupplement,
1381        Self::Todhri,
1382        Self::TuluTigalari,
1383        Self::BeriaErfe,
1384        Self::CJKUnifiedIdeographsExtensionJ,
1385        Self::MiscellaneousSymbolsSupplement,
1386        Self::SharadaSupplement,
1387        Self::Sidetic,
1388        Self::TaiYo,
1389        Self::TangutComponentsSupplement,
1390        Self::TolongSiki,
1391        Self::ArchaicCuneiformNumerals,
1392        Self::BengaliSupplement,
1393        Self::Jurchen,
1394        Self::JurchenRadicals,
1395        Self::MiscellaneousSymbolsAndArrowsExtended,
1396        Self::MusicalSymbolsSupplement,
1397        Self::Seal,
1398    ];
1399
1400    #[cfg(feature = "datagen")]
1401    #[doc(hidden)]
1402    pub fn names() -> impl Iterator<Item = (&'static str, Self)> {
1403        [
1404            ("NB", Self::NoBlock),
1405            ("ASCII", Self::BasicLatin),
1406            ("Latin_1_Sup", Self::Latin1Supplement),
1407            ("Latin_Ext_A", Self::LatinExtendedA),
1408            ("Latin_Ext_B", Self::LatinExtendedB),
1409            ("IPA_Ext", Self::IPAExtensions),
1410            ("Modifier_Letters", Self::SpacingModifierLetters),
1411            ("Diacriticals", Self::CombiningDiacriticalMarks),
1412            ("Greek", Self::GreekAndCoptic),
1413            ("Cyrillic", Self::Cyrillic),
1414            ("Armenian", Self::Armenian),
1415            ("Hebrew", Self::Hebrew),
1416            ("Arabic", Self::Arabic),
1417            ("Syriac", Self::Syriac),
1418            ("Thaana", Self::Thaana),
1419            ("Devanagari", Self::Devanagari),
1420            ("Bengali", Self::Bengali),
1421            ("Gurmukhi", Self::Gurmukhi),
1422            ("Gujarati", Self::Gujarati),
1423            ("Oriya", Self::Oriya),
1424            ("Tamil", Self::Tamil),
1425            ("Telugu", Self::Telugu),
1426            ("Kannada", Self::Kannada),
1427            ("Malayalam", Self::Malayalam),
1428            ("Sinhala", Self::Sinhala),
1429            ("Thai", Self::Thai),
1430            ("Lao", Self::Lao),
1431            ("Tibetan", Self::Tibetan),
1432            ("Myanmar", Self::Myanmar),
1433            ("Georgian", Self::Georgian),
1434            ("Jamo", Self::HangulJamo),
1435            ("Ethiopic", Self::Ethiopic),
1436            ("Cherokee", Self::Cherokee),
1437            ("UCAS", Self::UnifiedCanadianAboriginalSyllabics),
1438            ("Ogham", Self::Ogham),
1439            ("Runic", Self::Runic),
1440            ("Khmer", Self::Khmer),
1441            ("Mongolian", Self::Mongolian),
1442            ("Latin_Ext_Additional", Self::LatinExtendedAdditional),
1443            ("Greek_Ext", Self::GreekExtended),
1444            ("Punctuation", Self::GeneralPunctuation),
1445            ("Super_And_Sub", Self::SuperscriptsAndSubscripts),
1446            ("Currency_Symbols", Self::CurrencySymbols),
1447            ("Diacriticals_For_Symbols", Self::CombiningDiacriticalMarksForSymbols),
1448            ("Letterlike_Symbols", Self::LetterlikeSymbols),
1449            ("Number_Forms", Self::NumberForms),
1450            ("Arrows", Self::Arrows),
1451            ("Math_Operators", Self::MathematicalOperators),
1452            ("Misc_Technical", Self::MiscellaneousTechnical),
1453            ("Control_Pictures", Self::ControlPictures),
1454            ("OCR", Self::OpticalCharacterRecognition),
1455            ("Enclosed_Alphanum", Self::EnclosedAlphanumerics),
1456            ("Box_Drawing", Self::BoxDrawing),
1457            ("Block_Elements", Self::BlockElements),
1458            ("Geometric_Shapes", Self::GeometricShapes),
1459            ("Misc_Symbols", Self::MiscellaneousSymbols),
1460            ("Dingbats", Self::Dingbats),
1461            ("Braille", Self::BraillePatterns),
1462            ("CJK_Radicals_Sup", Self::CJKRadicalsSupplement),
1463            ("Kangxi", Self::KangxiRadicals),
1464            ("IDC", Self::IdeographicDescriptionCharacters),
1465            ("CJK_Symbols", Self::CJKSymbolsAndPunctuation),
1466            ("Hiragana", Self::Hiragana),
1467            ("Katakana", Self::Katakana),
1468            ("Bopomofo", Self::Bopomofo),
1469            ("Compat_Jamo", Self::HangulCompatibilityJamo),
1470            ("Kanbun", Self::Kanbun),
1471            ("Bopomofo_Ext", Self::BopomofoExtended),
1472            ("Enclosed_CJK", Self::EnclosedCJKLettersAndMonths),
1473            ("CJK_Compat", Self::CJKCompatibility),
1474            ("CJK_Ext_A", Self::CJKUnifiedIdeographsExtensionA),
1475            ("CJK", Self::CJKUnifiedIdeographs),
1476            ("Yi_Syllables", Self::YiSyllables),
1477            ("Yi_Radicals", Self::YiRadicals),
1478            ("Hangul", Self::HangulSyllables),
1479            ("High_Surrogates", Self::HighSurrogates),
1480            ("High_PU_Surrogates", Self::HighPrivateUseSurrogates),
1481            ("Low_Surrogates", Self::LowSurrogates),
1482            ("PUA", Self::PrivateUseArea),
1483            ("CJK_Compat_Ideographs", Self::CJKCompatibilityIdeographs),
1484            ("Alphabetic_PF", Self::AlphabeticPresentationForms),
1485            ("Arabic_PF_A", Self::ArabicPresentationFormsA),
1486            ("Half_Marks", Self::CombiningHalfMarks),
1487            ("CJK_Compat_Forms", Self::CJKCompatibilityForms),
1488            ("Small_Forms", Self::SmallFormVariants),
1489            ("Arabic_PF_B", Self::ArabicPresentationFormsB),
1490            ("Specials", Self::Specials),
1491            ("Half_And_Full_Forms", Self::HalfwidthAndFullwidthForms),
1492            ("Old_Italic", Self::OldItalic),
1493            ("Gothic", Self::Gothic),
1494            ("Deseret", Self::Deseret),
1495            ("Byzantine_Music", Self::ByzantineMusicalSymbols),
1496            ("Music", Self::MusicalSymbols),
1497            ("Math_Alphanum", Self::MathematicalAlphanumericSymbols),
1498            ("CJK_Ext_B", Self::CJKUnifiedIdeographsExtensionB),
1499            ("CJK_Compat_Ideographs_Sup", Self::CJKCompatibilityIdeographsSupplement),
1500            ("Tags", Self::Tags),
1501            ("Cyrillic_Sup", Self::CyrillicSupplement),
1502            ("Tagalog", Self::Tagalog),
1503            ("Hanunoo", Self::Hanunoo),
1504            ("Buhid", Self::Buhid),
1505            ("Tagbanwa", Self::Tagbanwa),
1506            ("Misc_Math_Symbols_A", Self::MiscellaneousMathematicalSymbolsA),
1507            ("Sup_Arrows_A", Self::SupplementalArrowsA),
1508            ("Sup_Arrows_B", Self::SupplementalArrowsB),
1509            ("Misc_Math_Symbols_B", Self::MiscellaneousMathematicalSymbolsB),
1510            ("Sup_Math_Operators", Self::SupplementalMathematicalOperators),
1511            ("Katakana_Ext", Self::KatakanaPhoneticExtensions),
1512            ("VS", Self::VariationSelectors),
1513            ("Sup_PUA_A", Self::SupplementaryPrivateUseAreaA),
1514            ("Sup_PUA_B", Self::SupplementaryPrivateUseAreaB),
1515            ("Limbu", Self::Limbu),
1516            ("Tai_Le", Self::TaiLe),
1517            ("Khmer_Symbols", Self::KhmerSymbols),
1518            ("Phonetic_Ext", Self::PhoneticExtensions),
1519            ("Misc_Arrows", Self::MiscellaneousSymbolsAndArrows),
1520            ("Yijing", Self::YijingHexagramSymbols),
1521            ("Linear_B_Syllabary", Self::LinearBSyllabary),
1522            ("Linear_B_Ideograms", Self::LinearBIdeograms),
1523            ("Aegean_Numbers", Self::AegeanNumbers),
1524            ("Ugaritic", Self::Ugaritic),
1525            ("Shavian", Self::Shavian),
1526            ("Osmanya", Self::Osmanya),
1527            ("Cypriot_Syllabary", Self::CypriotSyllabary),
1528            ("Tai_Xuan_Jing", Self::TaiXuanJingSymbols),
1529            ("VS_Sup", Self::VariationSelectorsSupplement),
1530            ("Ancient_Greek_Music", Self::AncientGreekMusicalNotation),
1531            ("Ancient_Greek_Numbers", Self::AncientGreekNumbers),
1532            ("Arabic_Sup", Self::ArabicSupplement),
1533            ("Buginese", Self::Buginese),
1534            ("CJK_Strokes", Self::CJKStrokes),
1535            ("Diacriticals_Sup", Self::CombiningDiacriticalMarksSupplement),
1536            ("Coptic", Self::Coptic),
1537            ("Ethiopic_Ext", Self::EthiopicExtended),
1538            ("Ethiopic_Sup", Self::EthiopicSupplement),
1539            ("Georgian_Sup", Self::GeorgianSupplement),
1540            ("Glagolitic", Self::Glagolitic),
1541            ("Kharoshthi", Self::Kharoshthi),
1542            ("Modifier_Tone_Letters", Self::ModifierToneLetters),
1543            ("New_Tai_Lue", Self::NewTaiLue),
1544            ("Old_Persian", Self::OldPersian),
1545            ("Phonetic_Ext_Sup", Self::PhoneticExtensionsSupplement),
1546            ("Sup_Punctuation", Self::SupplementalPunctuation),
1547            ("Syloti_Nagri", Self::SylotiNagri),
1548            ("Tifinagh", Self::Tifinagh),
1549            ("Vertical_Forms", Self::VerticalForms),
1550            ("NKo", Self::NKo),
1551            ("Balinese", Self::Balinese),
1552            ("Latin_Ext_C", Self::LatinExtendedC),
1553            ("Latin_Ext_D", Self::LatinExtendedD),
1554            ("Phags_Pa", Self::PhagsPa),
1555            ("Phoenician", Self::Phoenician),
1556            ("Cuneiform", Self::Cuneiform),
1557            ("Cuneiform_Numbers", Self::CuneiformNumbersAndPunctuation),
1558            ("Counting_Rod", Self::CountingRodNumerals),
1559            ("Sundanese", Self::Sundanese),
1560            ("Lepcha", Self::Lepcha),
1561            ("Ol_Chiki", Self::OlChiki),
1562            ("Cyrillic_Ext_A", Self::CyrillicExtendedA),
1563            ("Vai", Self::Vai),
1564            ("Cyrillic_Ext_B", Self::CyrillicExtendedB),
1565            ("Saurashtra", Self::Saurashtra),
1566            ("Kayah_Li", Self::KayahLi),
1567            ("Rejang", Self::Rejang),
1568            ("Cham", Self::Cham),
1569            ("Ancient_Symbols", Self::AncientSymbols),
1570            ("Phaistos", Self::PhaistosDisc),
1571            ("Lycian", Self::Lycian),
1572            ("Carian", Self::Carian),
1573            ("Lydian", Self::Lydian),
1574            ("Mahjong", Self::MahjongTiles),
1575            ("Domino", Self::DominoTiles),
1576            ("Samaritan", Self::Samaritan),
1577            ("UCAS_Ext", Self::UnifiedCanadianAboriginalSyllabicsExtended),
1578            ("Tai_Tham", Self::TaiTham),
1579            ("Vedic_Ext", Self::VedicExtensions),
1580            ("Lisu", Self::Lisu),
1581            ("Bamum", Self::Bamum),
1582            ("Indic_Number_Forms", Self::CommonIndicNumberForms),
1583            ("Devanagari_Ext", Self::DevanagariExtended),
1584            ("Jamo_Ext_A", Self::HangulJamoExtendedA),
1585            ("Javanese", Self::Javanese),
1586            ("Myanmar_Ext_A", Self::MyanmarExtendedA),
1587            ("Tai_Viet", Self::TaiViet),
1588            ("Meetei_Mayek", Self::MeeteiMayek),
1589            ("Jamo_Ext_B", Self::HangulJamoExtendedB),
1590            ("Imperial_Aramaic", Self::ImperialAramaic),
1591            ("Old_South_Arabian", Self::OldSouthArabian),
1592            ("Avestan", Self::Avestan),
1593            ("Inscriptional_Parthian", Self::InscriptionalParthian),
1594            ("Inscriptional_Pahlavi", Self::InscriptionalPahlavi),
1595            ("Old_Turkic", Self::OldTurkic),
1596            ("Rumi", Self::RumiNumeralSymbols),
1597            ("Kaithi", Self::Kaithi),
1598            ("Egyptian_Hieroglyphs", Self::EgyptianHieroglyphs),
1599            ("Enclosed_Alphanum_Sup", Self::EnclosedAlphanumericSupplement),
1600            ("Enclosed_Ideographic_Sup", Self::EnclosedIdeographicSupplement),
1601            ("CJK_Ext_C", Self::CJKUnifiedIdeographsExtensionC),
1602            ("Mandaic", Self::Mandaic),
1603            ("Batak", Self::Batak),
1604            ("Ethiopic_Ext_A", Self::EthiopicExtendedA),
1605            ("Brahmi", Self::Brahmi),
1606            ("Bamum_Sup", Self::BamumSupplement),
1607            ("Kana_Sup", Self::KanaSupplement),
1608            ("Playing_Cards", Self::PlayingCards),
1609            ("Misc_Pictographs", Self::MiscellaneousSymbolsAndPictographs),
1610            ("Emoticons", Self::Emoticons),
1611            ("Transport_And_Map", Self::TransportAndMapSymbols),
1612            ("Alchemical", Self::AlchemicalSymbols),
1613            ("CJK_Ext_D", Self::CJKUnifiedIdeographsExtensionD),
1614            ("Arabic_Ext_A", Self::ArabicExtendedA),
1615            ("Arabic_Math", Self::ArabicMathematicalAlphabeticSymbols),
1616            ("Chakma", Self::Chakma),
1617            ("Meetei_Mayek_Ext", Self::MeeteiMayekExtensions),
1618            ("Meroitic_Cursive", Self::MeroiticCursive),
1619            ("Meroitic_Hieroglyphs", Self::MeroiticHieroglyphs),
1620            ("Miao", Self::Miao),
1621            ("Sharada", Self::Sharada),
1622            ("Sora_Sompeng", Self::SoraSompeng),
1623            ("Sundanese_Sup", Self::SundaneseSupplement),
1624            ("Takri", Self::Takri),
1625            ("Bassa_Vah", Self::BassaVah),
1626            ("Caucasian_Albanian", Self::CaucasianAlbanian),
1627            ("Coptic_Epact_Numbers", Self::CopticEpactNumbers),
1628            ("Diacriticals_Ext", Self::CombiningDiacriticalMarksExtended),
1629            ("Duployan", Self::Duployan),
1630            ("Elbasan", Self::Elbasan),
1631            ("Geometric_Shapes_Ext", Self::GeometricShapesExtended),
1632            ("Grantha", Self::Grantha),
1633            ("Khojki", Self::Khojki),
1634            ("Khudawadi", Self::Khudawadi),
1635            ("Latin_Ext_E", Self::LatinExtendedE),
1636            ("Linear_A", Self::LinearA),
1637            ("Mahajani", Self::Mahajani),
1638            ("Manichaean", Self::Manichaean),
1639            ("Mende_Kikakui", Self::MendeKikakui),
1640            ("Modi", Self::Modi),
1641            ("Mro", Self::Mro),
1642            ("Myanmar_Ext_B", Self::MyanmarExtendedB),
1643            ("Nabataean", Self::Nabataean),
1644            ("Old_North_Arabian", Self::OldNorthArabian),
1645            ("Old_Permic", Self::OldPermic),
1646            ("Ornamental_Dingbats", Self::OrnamentalDingbats),
1647            ("Pahawh_Hmong", Self::PahawhHmong),
1648            ("Palmyrene", Self::Palmyrene),
1649            ("Pau_Cin_Hau", Self::PauCinHau),
1650            ("Psalter_Pahlavi", Self::PsalterPahlavi),
1651            ("Shorthand_Format_Controls", Self::ShorthandFormatControls),
1652            ("Siddham", Self::Siddham),
1653            ("Sinhala_Archaic_Numbers", Self::SinhalaArchaicNumbers),
1654            ("Sup_Arrows_C", Self::SupplementalArrowsC),
1655            ("Tirhuta", Self::Tirhuta),
1656            ("Warang_Citi", Self::WarangCiti),
1657            ("Ahom", Self::Ahom),
1658            ("Anatolian_Hieroglyphs", Self::AnatolianHieroglyphs),
1659            ("Cherokee_Sup", Self::CherokeeSupplement),
1660            ("CJK_Ext_E", Self::CJKUnifiedIdeographsExtensionE),
1661            ("Early_Dynastic_Cuneiform", Self::EarlyDynasticCuneiform),
1662            ("Hatran", Self::Hatran),
1663            ("Multani", Self::Multani),
1664            ("Old_Hungarian", Self::OldHungarian),
1665            ("Sup_Symbols_And_Pictographs", Self::SupplementalSymbolsAndPictographs),
1666            ("Sutton_SignWriting", Self::SuttonSignWriting),
1667            ("Adlam", Self::Adlam),
1668            ("Bhaiksuki", Self::Bhaiksuki),
1669            ("Cyrillic_Ext_C", Self::CyrillicExtendedC),
1670            ("Glagolitic_Sup", Self::GlagoliticSupplement),
1671            ("Ideographic_Symbols", Self::IdeographicSymbolsAndPunctuation),
1672            ("Marchen", Self::Marchen),
1673            ("Mongolian_Sup", Self::MongolianSupplement),
1674            ("Newa", Self::Newa),
1675            ("Osage", Self::Osage),
1676            ("Tangut", Self::Tangut),
1677            ("Tangut_Components", Self::TangutComponents),
1678            ("CJK_Ext_F", Self::CJKUnifiedIdeographsExtensionF),
1679            ("Kana_Ext_A", Self::KanaExtendedA),
1680            ("Masaram_Gondi", Self::MasaramGondi),
1681            ("Nushu", Self::Nushu),
1682            ("Soyombo", Self::Soyombo),
1683            ("Syriac_Sup", Self::SyriacSupplement),
1684            ("Zanabazar_Square", Self::ZanabazarSquare),
1685            ("Chess_Symbols", Self::ChessSymbols),
1686            ("Dogra", Self::Dogra),
1687            ("Georgian_Ext", Self::GeorgianExtended),
1688            ("Gunjala_Gondi", Self::GunjalaGondi),
1689            ("Hanifi_Rohingya", Self::HanifiRohingya),
1690            ("Indic_Siyaq_Numbers", Self::IndicSiyaqNumbers),
1691            ("Makasar", Self::Makasar),
1692            ("Mayan_Numerals", Self::MayanNumerals),
1693            ("Medefaidrin", Self::Medefaidrin),
1694            ("Old_Sogdian", Self::OldSogdian),
1695            ("Sogdian", Self::Sogdian),
1696            ("Egyptian_Hieroglyph_Format_Controls", Self::EgyptianHieroglyphFormatControls),
1697            ("Elymaic", Self::Elymaic),
1698            ("Nandinagari", Self::Nandinagari),
1699            ("Nyiakeng_Puachue_Hmong", Self::NyiakengPuachueHmong),
1700            ("Ottoman_Siyaq_Numbers", Self::OttomanSiyaqNumbers),
1701            ("Small_Kana_Ext", Self::SmallKanaExtension),
1702            ("Symbols_And_Pictographs_Ext_A", Self::SymbolsAndPictographsExtendedA),
1703            ("Tamil_Sup", Self::TamilSupplement),
1704            ("Wancho", Self::Wancho),
1705            ("Chorasmian", Self::Chorasmian),
1706            ("CJK_Ext_G", Self::CJKUnifiedIdeographsExtensionG),
1707            ("Dives_Akuru", Self::DivesAkuru),
1708            ("Khitan_Small_Script", Self::KhitanSmallScript),
1709            ("Lisu_Sup", Self::LisuSupplement),
1710            ("Symbols_For_Legacy_Computing", Self::SymbolsForLegacyComputing),
1711            ("Tangut_Sup", Self::TangutSupplement),
1712            ("Yezidi", Self::Yezidi),
1713            ("Arabic_Ext_B", Self::ArabicExtendedB),
1714            ("Cypro_Minoan", Self::CyproMinoan),
1715            ("Ethiopic_Ext_B", Self::EthiopicExtendedB),
1716            ("Kana_Ext_B", Self::KanaExtendedB),
1717            ("Latin_Ext_F", Self::LatinExtendedF),
1718            ("Latin_Ext_G", Self::LatinExtendedG),
1719            ("Old_Uyghur", Self::OldUyghur),
1720            ("Tangsa", Self::Tangsa),
1721            ("Toto", Self::Toto),
1722            ("UCAS_Ext_A", Self::UnifiedCanadianAboriginalSyllabicsExtendedA),
1723            ("Vithkuqi", Self::Vithkuqi),
1724            ("Znamenny_Music", Self::ZnamennyMusicalNotation),
1725            ("Arabic_Ext_C", Self::ArabicExtendedC),
1726            ("CJK_Ext_H", Self::CJKUnifiedIdeographsExtensionH),
1727            ("Cyrillic_Ext_D", Self::CyrillicExtendedD),
1728            ("Devanagari_Ext_A", Self::DevanagariExtendedA),
1729            ("Kaktovik_Numerals", Self::KaktovikNumerals),
1730            ("Kawi", Self::Kawi),
1731            ("Nag_Mundari", Self::NagMundari),
1732            ("CJK_Ext_I", Self::CJKUnifiedIdeographsExtensionI),
1733            ("Egyptian_Hieroglyphs_Ext_A", Self::EgyptianHieroglyphsExtendedA),
1734            ("Garay", Self::Garay),
1735            ("Gurung_Khema", Self::GurungKhema),
1736            ("Kirat_Rai", Self::KiratRai),
1737            ("Myanmar_Ext_C", Self::MyanmarExtendedC),
1738            ("Ol_Onal", Self::OlOnal),
1739            ("Sunuwar", Self::Sunuwar),
1740            ("Symbols_For_Legacy_Computing_Sup", Self::SymbolsForLegacyComputingSupplement),
1741            ("Todhri", Self::Todhri),
1742            ("Tulu_Tigalari", Self::TuluTigalari),
1743            ("Beria_Erfe", Self::BeriaErfe),
1744            ("CJK_Ext_J", Self::CJKUnifiedIdeographsExtensionJ),
1745            ("Misc_Symbols_Sup", Self::MiscellaneousSymbolsSupplement),
1746            ("Sharada_Sup", Self::SharadaSupplement),
1747            ("Sidetic", Self::Sidetic),
1748            ("Tai_Yo", Self::TaiYo),
1749            ("Tangut_Components_Sup", Self::TangutComponentsSupplement),
1750            ("Tolong_Siki", Self::TolongSiki),
1751            ("Archaic_Cuneiform_Numerals", Self::ArchaicCuneiformNumerals),
1752            ("Bengali_Sup", Self::BengaliSupplement),
1753            ("Jurchen", Self::Jurchen),
1754            ("Jurchen_Radicals", Self::JurchenRadicals),
1755            ("Misc_Arrows_Ext", Self::MiscellaneousSymbolsAndArrowsExtended),
1756            ("Music_Sup", Self::MusicalSymbolsSupplement),
1757            ("Seal", Self::Seal),
1758        ].into_iter()
1759    }
1760}
1761
1762impl CanonicalCombiningClass {
1763    pub const NotReordered: Self = Self(0);
1764    pub const NR: Self = Self::NotReordered;
1765    pub const Overlay: Self = Self(1);
1766    pub const OV: Self = Self::Overlay;
1767    pub const HanReading: Self = Self(6);
1768    pub const HANR: Self = Self::HanReading;
1769    pub const Nukta: Self = Self(7);
1770    pub const NK: Self = Self::Nukta;
1771    pub const KanaVoicing: Self = Self(8);
1772    pub const KV: Self = Self::KanaVoicing;
1773    pub const Virama: Self = Self(9);
1774    pub const VR: Self = Self::Virama;
1775    pub const CCC10: Self = Self(10);
1776    pub const CCC11: Self = Self(11);
1777    pub const CCC12: Self = Self(12);
1778    pub const CCC13: Self = Self(13);
1779    pub const CCC14: Self = Self(14);
1780    pub const CCC15: Self = Self(15);
1781    pub const CCC16: Self = Self(16);
1782    pub const CCC17: Self = Self(17);
1783    pub const CCC18: Self = Self(18);
1784    pub const CCC19: Self = Self(19);
1785    pub const CCC20: Self = Self(20);
1786    pub const CCC21: Self = Self(21);
1787    pub const CCC22: Self = Self(22);
1788    pub const CCC23: Self = Self(23);
1789    pub const CCC24: Self = Self(24);
1790    pub const CCC25: Self = Self(25);
1791    pub const CCC26: Self = Self(26);
1792    pub const CCC27: Self = Self(27);
1793    pub const CCC28: Self = Self(28);
1794    pub const CCC29: Self = Self(29);
1795    pub const CCC30: Self = Self(30);
1796    pub const CCC31: Self = Self(31);
1797    pub const CCC32: Self = Self(32);
1798    pub const CCC33: Self = Self(33);
1799    pub const CCC34: Self = Self(34);
1800    pub const CCC35: Self = Self(35);
1801    pub const CCC36: Self = Self(36);
1802    pub const CCC84: Self = Self(84);
1803    pub const CCC91: Self = Self(91);
1804    pub const CCC103: Self = Self(103);
1805    pub const CCC107: Self = Self(107);
1806    pub const CCC118: Self = Self(118);
1807    pub const CCC122: Self = Self(122);
1808    pub const CCC129: Self = Self(129);
1809    pub const CCC130: Self = Self(130);
1810    pub const CCC132: Self = Self(132);
1811    pub const CCC133: Self = Self(133);
1812    pub const AttachedBelowLeft: Self = Self(200);
1813    pub const ATBL: Self = Self::AttachedBelowLeft;
1814    pub const AttachedBelow: Self = Self(202);
1815    pub const ATB: Self = Self::AttachedBelow;
1816    pub const AttachedAbove: Self = Self(214);
1817    pub const ATA: Self = Self::AttachedAbove;
1818    pub const AttachedAboveRight: Self = Self(216);
1819    pub const ATAR: Self = Self::AttachedAboveRight;
1820    pub const BelowLeft: Self = Self(218);
1821    pub const BL: Self = Self::BelowLeft;
1822    pub const Below: Self = Self(220);
1823    pub const B: Self = Self::Below;
1824    pub const BelowRight: Self = Self(222);
1825    pub const BR: Self = Self::BelowRight;
1826    pub const Left: Self = Self(224);
1827    pub const L: Self = Self::Left;
1828    pub const Right: Self = Self(226);
1829    pub const R: Self = Self::Right;
1830    pub const AboveLeft: Self = Self(228);
1831    pub const AL: Self = Self::AboveLeft;
1832    pub const Above: Self = Self(230);
1833    pub const A: Self = Self::Above;
1834    pub const AboveRight: Self = Self(232);
1835    pub const AR: Self = Self::AboveRight;
1836    pub const DoubleBelow: Self = Self(233);
1837    pub const DB: Self = Self::DoubleBelow;
1838    pub const DoubleAbove: Self = Self(234);
1839    pub const DA: Self = Self::DoubleAbove;
1840    pub const IotaSubscript: Self = Self(240);
1841    pub const IS: Self = Self::IotaSubscript;
1842}
1843
1844#[cfg(feature = "datagen")]
1845impl databake::Bake for CanonicalCombiningClass {
1846    fn bake(&self, env: &databake::CrateEnv) -> databake::TokenStream {
1847        env.insert("icu_properties");
1848        match *self {
1849            Self::NotReordered => databake::quote!(icu_properties::props::CanonicalCombiningClass::NotReordered),
1850            Self::Overlay => databake::quote!(icu_properties::props::CanonicalCombiningClass::Overlay),
1851            Self::HanReading => databake::quote!(icu_properties::props::CanonicalCombiningClass::HanReading),
1852            Self::Nukta => databake::quote!(icu_properties::props::CanonicalCombiningClass::Nukta),
1853            Self::KanaVoicing => databake::quote!(icu_properties::props::CanonicalCombiningClass::KanaVoicing),
1854            Self::Virama => databake::quote!(icu_properties::props::CanonicalCombiningClass::Virama),
1855            Self::CCC10 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC10),
1856            Self::CCC11 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC11),
1857            Self::CCC12 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC12),
1858            Self::CCC13 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC13),
1859            Self::CCC14 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC14),
1860            Self::CCC15 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC15),
1861            Self::CCC16 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC16),
1862            Self::CCC17 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC17),
1863            Self::CCC18 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC18),
1864            Self::CCC19 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC19),
1865            Self::CCC20 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC20),
1866            Self::CCC21 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC21),
1867            Self::CCC22 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC22),
1868            Self::CCC23 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC23),
1869            Self::CCC24 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC24),
1870            Self::CCC25 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC25),
1871            Self::CCC26 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC26),
1872            Self::CCC27 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC27),
1873            Self::CCC28 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC28),
1874            Self::CCC29 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC29),
1875            Self::CCC30 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC30),
1876            Self::CCC31 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC31),
1877            Self::CCC32 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC32),
1878            Self::CCC33 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC33),
1879            Self::CCC34 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC34),
1880            Self::CCC35 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC35),
1881            Self::CCC36 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC36),
1882            Self::CCC84 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC84),
1883            Self::CCC91 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC91),
1884            Self::CCC103 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC103),
1885            Self::CCC107 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC107),
1886            Self::CCC118 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC118),
1887            Self::CCC122 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC122),
1888            Self::CCC129 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC129),
1889            Self::CCC130 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC130),
1890            Self::CCC132 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC132),
1891            Self::CCC133 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC133),
1892            Self::AttachedBelowLeft => databake::quote!(icu_properties::props::CanonicalCombiningClass::AttachedBelowLeft),
1893            Self::AttachedBelow => databake::quote!(icu_properties::props::CanonicalCombiningClass::AttachedBelow),
1894            Self::AttachedAbove => databake::quote!(icu_properties::props::CanonicalCombiningClass::AttachedAbove),
1895            Self::AttachedAboveRight => databake::quote!(icu_properties::props::CanonicalCombiningClass::AttachedAboveRight),
1896            Self::BelowLeft => databake::quote!(icu_properties::props::CanonicalCombiningClass::BelowLeft),
1897            Self::Below => databake::quote!(icu_properties::props::CanonicalCombiningClass::Below),
1898            Self::BelowRight => databake::quote!(icu_properties::props::CanonicalCombiningClass::BelowRight),
1899            Self::Left => databake::quote!(icu_properties::props::CanonicalCombiningClass::Left),
1900            Self::Right => databake::quote!(icu_properties::props::CanonicalCombiningClass::Right),
1901            Self::AboveLeft => databake::quote!(icu_properties::props::CanonicalCombiningClass::AboveLeft),
1902            Self::Above => databake::quote!(icu_properties::props::CanonicalCombiningClass::Above),
1903            Self::AboveRight => databake::quote!(icu_properties::props::CanonicalCombiningClass::AboveRight),
1904            Self::DoubleBelow => databake::quote!(icu_properties::props::CanonicalCombiningClass::DoubleBelow),
1905            Self::DoubleAbove => databake::quote!(icu_properties::props::CanonicalCombiningClass::DoubleAbove),
1906            Self::IotaSubscript => databake::quote!(icu_properties::props::CanonicalCombiningClass::IotaSubscript),
1907            Self(v) => databake::quote!(icu_properties::props::CanonicalCombiningClass(#v)),
1908        }
1909    }
1910}
1911
1912
1913impl From<CanonicalCombiningClass> for u16  {
1914    fn from(other: CanonicalCombiningClass) -> Self {
1915        other.0 as u16
1916    }
1917}
1918
1919impl CanonicalCombiningClass {
1920    /// Deprecated
1921    #[deprecated]
1922    pub const ALL_VALUES: &'static [Self] = &[
1923        Self::NotReordered,
1924        Self::Overlay,
1925        Self::HanReading,
1926        Self::Nukta,
1927        Self::KanaVoicing,
1928        Self::Virama,
1929        Self::CCC10,
1930        Self::CCC11,
1931        Self::CCC12,
1932        Self::CCC13,
1933        Self::CCC14,
1934        Self::CCC15,
1935        Self::CCC16,
1936        Self::CCC17,
1937        Self::CCC18,
1938        Self::CCC19,
1939        Self::CCC20,
1940        Self::CCC21,
1941        Self::CCC22,
1942        Self::CCC23,
1943        Self::CCC24,
1944        Self::CCC25,
1945        Self::CCC26,
1946        Self::CCC27,
1947        Self::CCC28,
1948        Self::CCC29,
1949        Self::CCC30,
1950        Self::CCC31,
1951        Self::CCC32,
1952        Self::CCC33,
1953        Self::CCC34,
1954        Self::CCC35,
1955        Self::CCC36,
1956        Self::CCC84,
1957        Self::CCC91,
1958        Self::CCC103,
1959        Self::CCC107,
1960        Self::CCC118,
1961        Self::CCC122,
1962        Self::CCC129,
1963        Self::CCC130,
1964        Self::CCC132,
1965        Self::CCC133,
1966        Self::AttachedBelowLeft,
1967        Self::AttachedBelow,
1968        Self::AttachedAbove,
1969        Self::AttachedAboveRight,
1970        Self::BelowLeft,
1971        Self::Below,
1972        Self::BelowRight,
1973        Self::Left,
1974        Self::Right,
1975        Self::AboveLeft,
1976        Self::Above,
1977        Self::AboveRight,
1978        Self::DoubleBelow,
1979        Self::DoubleAbove,
1980        Self::IotaSubscript,
1981    ];
1982
1983    #[cfg(feature = "datagen")]
1984    #[doc(hidden)]
1985    pub fn names() -> impl Iterator<Item = (&'static str, Self)> {
1986        [
1987            ("NR", Self::NotReordered),
1988            ("OV", Self::Overlay),
1989            ("HANR", Self::HanReading),
1990            ("NK", Self::Nukta),
1991            ("KV", Self::KanaVoicing),
1992            ("VR", Self::Virama),
1993            ("CCC10", Self::CCC10),
1994            ("CCC11", Self::CCC11),
1995            ("CCC12", Self::CCC12),
1996            ("CCC13", Self::CCC13),
1997            ("CCC14", Self::CCC14),
1998            ("CCC15", Self::CCC15),
1999            ("CCC16", Self::CCC16),
2000            ("CCC17", Self::CCC17),
2001            ("CCC18", Self::CCC18),
2002            ("CCC19", Self::CCC19),
2003            ("CCC20", Self::CCC20),
2004            ("CCC21", Self::CCC21),
2005            ("CCC22", Self::CCC22),
2006            ("CCC23", Self::CCC23),
2007            ("CCC24", Self::CCC24),
2008            ("CCC25", Self::CCC25),
2009            ("CCC26", Self::CCC26),
2010            ("CCC27", Self::CCC27),
2011            ("CCC28", Self::CCC28),
2012            ("CCC29", Self::CCC29),
2013            ("CCC30", Self::CCC30),
2014            ("CCC31", Self::CCC31),
2015            ("CCC32", Self::CCC32),
2016            ("CCC33", Self::CCC33),
2017            ("CCC34", Self::CCC34),
2018            ("CCC35", Self::CCC35),
2019            ("CCC36", Self::CCC36),
2020            ("CCC84", Self::CCC84),
2021            ("CCC91", Self::CCC91),
2022            ("CCC103", Self::CCC103),
2023            ("CCC107", Self::CCC107),
2024            ("CCC118", Self::CCC118),
2025            ("CCC122", Self::CCC122),
2026            ("CCC129", Self::CCC129),
2027            ("CCC130", Self::CCC130),
2028            ("CCC132", Self::CCC132),
2029            ("CCC133", Self::CCC133),
2030            ("ATBL", Self::AttachedBelowLeft),
2031            ("ATB", Self::AttachedBelow),
2032            ("ATA", Self::AttachedAbove),
2033            ("ATAR", Self::AttachedAboveRight),
2034            ("BL", Self::BelowLeft),
2035            ("B", Self::Below),
2036            ("BR", Self::BelowRight),
2037            ("L", Self::Left),
2038            ("R", Self::Right),
2039            ("AL", Self::AboveLeft),
2040            ("A", Self::Above),
2041            ("AR", Self::AboveRight),
2042            ("DB", Self::DoubleBelow),
2043            ("DA", Self::DoubleAbove),
2044            ("IS", Self::IotaSubscript),
2045        ].into_iter()
2046    }
2047}
2048
2049impl EastAsianWidth {
2050    pub const Neutral: Self = Self(0);
2051    pub const N: Self = Self::Neutral;
2052    pub const Ambiguous: Self = Self(1);
2053    pub const A: Self = Self::Ambiguous;
2054    pub const Halfwidth: Self = Self(2);
2055    pub const H: Self = Self::Halfwidth;
2056    pub const Fullwidth: Self = Self(3);
2057    pub const F: Self = Self::Fullwidth;
2058    pub const Narrow: Self = Self(4);
2059    pub const Na: Self = Self::Narrow;
2060    pub const Wide: Self = Self(5);
2061    pub const W: Self = Self::Wide;
2062}
2063
2064#[cfg(feature = "datagen")]
2065impl databake::Bake for EastAsianWidth {
2066    fn bake(&self, env: &databake::CrateEnv) -> databake::TokenStream {
2067        env.insert("icu_properties");
2068        match *self {
2069            Self::Neutral => databake::quote!(icu_properties::props::EastAsianWidth::Neutral),
2070            Self::Ambiguous => databake::quote!(icu_properties::props::EastAsianWidth::Ambiguous),
2071            Self::Halfwidth => databake::quote!(icu_properties::props::EastAsianWidth::Halfwidth),
2072            Self::Fullwidth => databake::quote!(icu_properties::props::EastAsianWidth::Fullwidth),
2073            Self::Narrow => databake::quote!(icu_properties::props::EastAsianWidth::Narrow),
2074            Self::Wide => databake::quote!(icu_properties::props::EastAsianWidth::Wide),
2075            Self(v) => databake::quote!(icu_properties::props::EastAsianWidth(#v)),
2076        }
2077    }
2078}
2079
2080
2081impl From<EastAsianWidth> for u16  {
2082    fn from(other: EastAsianWidth) -> Self {
2083        other.0 as u16
2084    }
2085}
2086
2087impl EastAsianWidth {
2088    /// Deprecated
2089    #[deprecated]
2090    pub const ALL_VALUES: &'static [Self] = &[
2091        Self::Neutral,
2092        Self::Ambiguous,
2093        Self::Halfwidth,
2094        Self::Fullwidth,
2095        Self::Narrow,
2096        Self::Wide,
2097    ];
2098
2099    #[cfg(feature = "datagen")]
2100    #[doc(hidden)]
2101    pub fn names() -> impl Iterator<Item = (&'static str, Self)> {
2102        [
2103            ("N", Self::Neutral),
2104            ("A", Self::Ambiguous),
2105            ("H", Self::Halfwidth),
2106            ("F", Self::Fullwidth),
2107            ("Na", Self::Narrow),
2108            ("W", Self::Wide),
2109        ].into_iter()
2110    }
2111}
2112
2113#[derive(#[automatically_derived]#[allow(clippy::exhaustive_enums)]
#[allow(missing_docs)]
impl ::core::marker::Copy for GeneralCategory { }Copy, #[automatically_derived]#[doc(hidden)]#[allow(clippy::exhaustive_enums)]
#[allow(missing_docs)]
unsafe impl ::core::clone::TrivialClone for GeneralCategory { }
#[automatically_derived]#[allow(clippy::exhaustive_enums)]
#[allow(missing_docs)]
impl ::core::clone::Clone for GeneralCategory {
    #[inline]
    fn clone(&self) -> Self { *self }
}Clone, #[automatically_derived]#[allow(clippy::exhaustive_enums)]
#[allow(missing_docs)]
impl ::core::marker::StructuralPartialEq for GeneralCategory { }
#[automatically_derived]#[allow(clippy::exhaustive_enums)]
#[allow(missing_docs)]
impl ::core::cmp::PartialEq for GeneralCategory {
    #[inline]
    fn eq(&self, other: &Self) -> bool {
        ::core::intrinsics::discriminant_value(self) ==
            ::core::intrinsics::discriminant_value(other)
    }
}PartialEq, #[automatically_derived]#[allow(clippy::exhaustive_enums)]
#[allow(missing_docs)]
impl ::core::cmp::Eq for GeneralCategory { }Eq, #[automatically_derived]#[allow(clippy::exhaustive_enums)]
#[allow(missing_docs)]
impl ::core::fmt::Debug for GeneralCategory {
    #[inline]
    fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
        ::core::fmt::Formatter::debug_c_like_enum_write_str(f,
            "Unassigned UppercaseLetter LowercaseLetter TitlecaseLetter ModifierLetter OtherLetter NonspacingMark EnclosingMark SpacingMark DecimalNumber LetterNumber OtherNumber SpaceSeparator LineSeparator ParagraphSeparator Control Format PrivateUse Surrogate DashPunctuation OpenPunctuation ClosePunctuation ConnectorPunctuation OtherPunctuation MathSymbol CurrencySymbol ModifierSymbol OtherSymbol InitialPunctuation FinalPunctuation",
            match self {
                GeneralCategory::Unassigned => 0usize,
                GeneralCategory::UppercaseLetter => 11usize,
                GeneralCategory::LowercaseLetter => 27usize,
                GeneralCategory::TitlecaseLetter => 43usize,
                GeneralCategory::ModifierLetter => 59usize,
                GeneralCategory::OtherLetter => 74usize,
                GeneralCategory::NonspacingMark => 86usize,
                GeneralCategory::EnclosingMark => 101usize,
                GeneralCategory::SpacingMark => 115usize,
                GeneralCategory::DecimalNumber => 127usize,
                GeneralCategory::LetterNumber => 141usize,
                GeneralCategory::OtherNumber => 154usize,
                GeneralCategory::SpaceSeparator => 166usize,
                GeneralCategory::LineSeparator => 181usize,
                GeneralCategory::ParagraphSeparator => 195usize,
                GeneralCategory::Control => 214usize,
                GeneralCategory::Format => 222usize,
                GeneralCategory::PrivateUse => 229usize,
                GeneralCategory::Surrogate => 240usize,
                GeneralCategory::DashPunctuation => 250usize,
                GeneralCategory::OpenPunctuation => 266usize,
                GeneralCategory::ClosePunctuation => 282usize,
                GeneralCategory::ConnectorPunctuation => 299usize,
                GeneralCategory::OtherPunctuation => 320usize,
                GeneralCategory::MathSymbol => 337usize,
                GeneralCategory::CurrencySymbol => 348usize,
                GeneralCategory::ModifierSymbol => 363usize,
                GeneralCategory::OtherSymbol => 378usize,
                GeneralCategory::InitialPunctuation => 390usize,
                GeneralCategory::FinalPunctuation => 409usize,
            })
    }
}Debug, #[automatically_derived]#[allow(clippy::exhaustive_enums)]
#[allow(missing_docs)]
impl ::core::cmp::Ord for GeneralCategory {
    #[inline]
    fn cmp(&self, other: &Self) -> ::core::cmp::Ordering {
        ::core::cmp::Ord::cmp(&::core::intrinsics::discriminant_value(self),
            &::core::intrinsics::discriminant_value(other))
    }
}Ord, #[automatically_derived]#[allow(clippy::exhaustive_enums)]
#[allow(missing_docs)]
impl ::core::cmp::PartialOrd for GeneralCategory {
    #[inline]
    fn partial_cmp(&self, other: &Self)
        -> ::core::option::Option<::core::cmp::Ordering> {
        ::core::option::Option::Some(::core::cmp::Ord::cmp(self, other))
    }
}PartialOrd, #[automatically_derived]#[allow(clippy::exhaustive_enums)]
#[allow(missing_docs)]
impl ::core::hash::Hash for GeneralCategory {
    #[inline]
    fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) {
        ::core::hash::Hash::hash(&::core::intrinsics::discriminant_value(self),
            state)
    }
}Hash)]
2114#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
2115#[allow(clippy::exhaustive_enums)] // this type is stable
2116#[automatically_derived]impl ::core::cmp::Eq for GeneralCategoryULE {
    #[inline]
    #[doc(hidden)]
    #[coverage(off)]
    fn assert_fields_are_eq(&self) {
        let _: ::core::cmp::AssertParamIsEq<u8>;
    }
}
unsafe impl zerovec::ule::ULE for GeneralCategoryULE {
    #[inline]
    fn validate_bytes(bytes: &[u8]) -> Result<(), zerovec::ule::UleError> {
        for byte in bytes {
            match *byte {
                0u8 | 1u8 | 2u8 | 3u8 | 4u8 | 5u8 | 6u8 | 7u8 | 8u8 | 9u8 |
                    10u8 | 11u8 | 12u8 | 13u8 | 14u8 | 15u8 | 16u8 | 17u8 | 18u8
                    | 19u8 | 20u8 | 21u8 | 22u8 | 23u8 | 24u8 | 25u8 | 26u8 |
                    27u8 | 28u8 | 29u8 => {}
                _ => return Err(zerovec::ule::UleError::parse::<Self>()),
            }
        }
        Ok(())
    }
}
impl zerovec::ule::AsULE for GeneralCategory {
    type ULE = GeneralCategoryULE;
    fn to_unaligned(self) -> Self::ULE { GeneralCategoryULE(self as u8) }
    fn from_unaligned(other: Self::ULE) -> Self {
        unsafe { ::core::mem::transmute::<u8, Self>(other.0) }
    }
}
impl GeneralCategory {
    #[doc =
    r" Attempt to construct the value from its corresponding integer,"]
    #[doc = r" returning `None` if not possible"]
    pub(crate) fn new_from_u8(value: u8) -> Option<Self> {
        if <GeneralCategoryULE as
                        zerovec::ule::ULE>::validate_bytes(&[value]).is_ok() {
            Some(zerovec::ule::AsULE::from_unaligned(GeneralCategoryULE(value)))
        } else { None }
    }
}#[zerovec::make_ule(GeneralCategoryULE)]
2117#[cfg_attr(not(feature = "alloc"), zerovec::skip_derive(ZeroMapKV))]
2118#[repr(u8)]
2119#[allow(missing_docs)] // These variants don't need individual documentation.
2120pub enum GeneralCategory {
2121    Unassigned = 0,
2122    UppercaseLetter = 1,
2123    LowercaseLetter = 2,
2124    TitlecaseLetter = 3,
2125    ModifierLetter = 4,
2126    OtherLetter = 5,
2127    NonspacingMark = 6,
2128    EnclosingMark = 7,
2129    SpacingMark = 8,
2130    DecimalNumber = 9,
2131    LetterNumber = 10,
2132    OtherNumber = 11,
2133    SpaceSeparator = 12,
2134    LineSeparator = 13,
2135    ParagraphSeparator = 14,
2136    Control = 15,
2137    Format = 16,
2138    PrivateUse = 17,
2139    Surrogate = 18,
2140    DashPunctuation = 19,
2141    OpenPunctuation = 20,
2142    ClosePunctuation = 21,
2143    ConnectorPunctuation = 22,
2144    OtherPunctuation = 23,
2145    MathSymbol = 24,
2146    CurrencySymbol = 25,
2147    ModifierSymbol = 26,
2148    OtherSymbol = 27,
2149    InitialPunctuation = 28,
2150    FinalPunctuation = 29,
2151}
2152
2153impl GeneralCategory {
2154    pub const Cn: Self = Self::Unassigned;
2155    pub const Lu: Self = Self::UppercaseLetter;
2156    pub const Ll: Self = Self::LowercaseLetter;
2157    pub const Lt: Self = Self::TitlecaseLetter;
2158    pub const Lm: Self = Self::ModifierLetter;
2159    pub const Lo: Self = Self::OtherLetter;
2160    pub const Mn: Self = Self::NonspacingMark;
2161    pub const Me: Self = Self::EnclosingMark;
2162    pub const Mc: Self = Self::SpacingMark;
2163    pub const Nd: Self = Self::DecimalNumber;
2164    pub const Digit: Self = Self::DecimalNumber;
2165    pub const Nl: Self = Self::LetterNumber;
2166    pub const No: Self = Self::OtherNumber;
2167    pub const Zs: Self = Self::SpaceSeparator;
2168    pub const Zl: Self = Self::LineSeparator;
2169    pub const Zp: Self = Self::ParagraphSeparator;
2170    pub const Cc: Self = Self::Control;
2171    pub const Cntrl: Self = Self::Control;
2172    pub const Cf: Self = Self::Format;
2173    pub const Co: Self = Self::PrivateUse;
2174    pub const Cs: Self = Self::Surrogate;
2175    pub const Pd: Self = Self::DashPunctuation;
2176    pub const Ps: Self = Self::OpenPunctuation;
2177    pub const Pe: Self = Self::ClosePunctuation;
2178    pub const Pc: Self = Self::ConnectorPunctuation;
2179    pub const Po: Self = Self::OtherPunctuation;
2180    pub const Sm: Self = Self::MathSymbol;
2181    pub const Sc: Self = Self::CurrencySymbol;
2182    pub const Sk: Self = Self::ModifierSymbol;
2183    pub const So: Self = Self::OtherSymbol;
2184    pub const Pi: Self = Self::InitialPunctuation;
2185    pub const Pf: Self = Self::FinalPunctuation;
2186}
2187
2188#[cfg(feature = "datagen")]
2189impl databake::Bake for GeneralCategory {
2190    fn bake(&self, env: &databake::CrateEnv) -> databake::TokenStream {
2191        env.insert("icu_properties");
2192        match *self {
2193            Self::Unassigned => databake::quote!(icu_properties::props::GeneralCategory::Unassigned),
2194            Self::UppercaseLetter => databake::quote!(icu_properties::props::GeneralCategory::UppercaseLetter),
2195            Self::LowercaseLetter => databake::quote!(icu_properties::props::GeneralCategory::LowercaseLetter),
2196            Self::TitlecaseLetter => databake::quote!(icu_properties::props::GeneralCategory::TitlecaseLetter),
2197            Self::ModifierLetter => databake::quote!(icu_properties::props::GeneralCategory::ModifierLetter),
2198            Self::OtherLetter => databake::quote!(icu_properties::props::GeneralCategory::OtherLetter),
2199            Self::NonspacingMark => databake::quote!(icu_properties::props::GeneralCategory::NonspacingMark),
2200            Self::EnclosingMark => databake::quote!(icu_properties::props::GeneralCategory::EnclosingMark),
2201            Self::SpacingMark => databake::quote!(icu_properties::props::GeneralCategory::SpacingMark),
2202            Self::DecimalNumber => databake::quote!(icu_properties::props::GeneralCategory::DecimalNumber),
2203            Self::LetterNumber => databake::quote!(icu_properties::props::GeneralCategory::LetterNumber),
2204            Self::OtherNumber => databake::quote!(icu_properties::props::GeneralCategory::OtherNumber),
2205            Self::SpaceSeparator => databake::quote!(icu_properties::props::GeneralCategory::SpaceSeparator),
2206            Self::LineSeparator => databake::quote!(icu_properties::props::GeneralCategory::LineSeparator),
2207            Self::ParagraphSeparator => databake::quote!(icu_properties::props::GeneralCategory::ParagraphSeparator),
2208            Self::Control => databake::quote!(icu_properties::props::GeneralCategory::Control),
2209            Self::Format => databake::quote!(icu_properties::props::GeneralCategory::Format),
2210            Self::PrivateUse => databake::quote!(icu_properties::props::GeneralCategory::PrivateUse),
2211            Self::Surrogate => databake::quote!(icu_properties::props::GeneralCategory::Surrogate),
2212            Self::DashPunctuation => databake::quote!(icu_properties::props::GeneralCategory::DashPunctuation),
2213            Self::OpenPunctuation => databake::quote!(icu_properties::props::GeneralCategory::OpenPunctuation),
2214            Self::ClosePunctuation => databake::quote!(icu_properties::props::GeneralCategory::ClosePunctuation),
2215            Self::ConnectorPunctuation => databake::quote!(icu_properties::props::GeneralCategory::ConnectorPunctuation),
2216            Self::OtherPunctuation => databake::quote!(icu_properties::props::GeneralCategory::OtherPunctuation),
2217            Self::MathSymbol => databake::quote!(icu_properties::props::GeneralCategory::MathSymbol),
2218            Self::CurrencySymbol => databake::quote!(icu_properties::props::GeneralCategory::CurrencySymbol),
2219            Self::ModifierSymbol => databake::quote!(icu_properties::props::GeneralCategory::ModifierSymbol),
2220            Self::OtherSymbol => databake::quote!(icu_properties::props::GeneralCategory::OtherSymbol),
2221            Self::InitialPunctuation => databake::quote!(icu_properties::props::GeneralCategory::InitialPunctuation),
2222            Self::FinalPunctuation => databake::quote!(icu_properties::props::GeneralCategory::FinalPunctuation),
2223        }
2224    }
2225}
2226
2227
2228impl From<GeneralCategory> for u16  {
2229    fn from(other: GeneralCategory) -> Self {
2230        other as u16
2231    }
2232}
2233
2234impl GeneralCategory {
2235    /// Deprecated
2236    #[deprecated]
2237    pub const ALL_VALUES: &'static [Self] = &[
2238        Self::Unassigned,
2239        Self::UppercaseLetter,
2240        Self::LowercaseLetter,
2241        Self::TitlecaseLetter,
2242        Self::ModifierLetter,
2243        Self::OtherLetter,
2244        Self::NonspacingMark,
2245        Self::EnclosingMark,
2246        Self::SpacingMark,
2247        Self::DecimalNumber,
2248        Self::LetterNumber,
2249        Self::OtherNumber,
2250        Self::SpaceSeparator,
2251        Self::LineSeparator,
2252        Self::ParagraphSeparator,
2253        Self::Control,
2254        Self::Format,
2255        Self::PrivateUse,
2256        Self::Surrogate,
2257        Self::DashPunctuation,
2258        Self::OpenPunctuation,
2259        Self::ClosePunctuation,
2260        Self::ConnectorPunctuation,
2261        Self::OtherPunctuation,
2262        Self::MathSymbol,
2263        Self::CurrencySymbol,
2264        Self::ModifierSymbol,
2265        Self::OtherSymbol,
2266        Self::InitialPunctuation,
2267        Self::FinalPunctuation,
2268    ];
2269
2270    #[cfg(feature = "datagen")]
2271    #[doc(hidden)]
2272    pub fn names() -> impl Iterator<Item = (&'static str, Self)> {
2273        [
2274            ("Cn", Self::Unassigned),
2275            ("Lu", Self::UppercaseLetter),
2276            ("Ll", Self::LowercaseLetter),
2277            ("Lt", Self::TitlecaseLetter),
2278            ("Lm", Self::ModifierLetter),
2279            ("Lo", Self::OtherLetter),
2280            ("Mn", Self::NonspacingMark),
2281            ("Me", Self::EnclosingMark),
2282            ("Mc", Self::SpacingMark),
2283            ("Nd", Self::DecimalNumber),
2284            ("Nl", Self::LetterNumber),
2285            ("No", Self::OtherNumber),
2286            ("Zs", Self::SpaceSeparator),
2287            ("Zl", Self::LineSeparator),
2288            ("Zp", Self::ParagraphSeparator),
2289            ("Cc", Self::Control),
2290            ("Cf", Self::Format),
2291            ("Co", Self::PrivateUse),
2292            ("Cs", Self::Surrogate),
2293            ("Pd", Self::DashPunctuation),
2294            ("Ps", Self::OpenPunctuation),
2295            ("Pe", Self::ClosePunctuation),
2296            ("Pc", Self::ConnectorPunctuation),
2297            ("Po", Self::OtherPunctuation),
2298            ("Sm", Self::MathSymbol),
2299            ("Sc", Self::CurrencySymbol),
2300            ("Sk", Self::ModifierSymbol),
2301            ("So", Self::OtherSymbol),
2302            ("Pi", Self::InitialPunctuation),
2303            ("Pf", Self::FinalPunctuation),
2304        ].into_iter()
2305    }
2306}
2307
2308impl GraphemeClusterBreak {
2309    pub const Other: Self = Self(0);
2310    pub const XX: Self = Self::Other;
2311    pub const Control: Self = Self(1);
2312    pub const CN: Self = Self::Control;
2313    pub const CR: Self = Self(2);
2314    pub const Extend: Self = Self(3);
2315    pub const EX: Self = Self::Extend;
2316    pub const L: Self = Self(4);
2317    pub const LF: Self = Self(5);
2318    pub const LV: Self = Self(6);
2319    pub const LVT: Self = Self(7);
2320    pub const T: Self = Self(8);
2321    pub const V: Self = Self(9);
2322    pub const SpacingMark: Self = Self(10);
2323    pub const SM: Self = Self::SpacingMark;
2324    pub const Prepend: Self = Self(11);
2325    pub const PP: Self = Self::Prepend;
2326    pub const RegionalIndicator: Self = Self(12);
2327    pub const RI: Self = Self::RegionalIndicator;
2328    pub const EBase: Self = Self(13);
2329    pub const EB: Self = Self::EBase;
2330    pub const EBaseGAZ: Self = Self(14);
2331    pub const EBG: Self = Self::EBaseGAZ;
2332    pub const EModifier: Self = Self(15);
2333    pub const EM: Self = Self::EModifier;
2334    pub const GlueAfterZwj: Self = Self(16);
2335    pub const GAZ: Self = Self::GlueAfterZwj;
2336    pub const ZWJ: Self = Self(17);
2337}
2338
2339#[cfg(feature = "datagen")]
2340impl databake::Bake for GraphemeClusterBreak {
2341    fn bake(&self, env: &databake::CrateEnv) -> databake::TokenStream {
2342        env.insert("icu_properties");
2343        match *self {
2344            Self::Other => databake::quote!(icu_properties::props::GraphemeClusterBreak::Other),
2345            Self::Control => databake::quote!(icu_properties::props::GraphemeClusterBreak::Control),
2346            Self::CR => databake::quote!(icu_properties::props::GraphemeClusterBreak::CR),
2347            Self::Extend => databake::quote!(icu_properties::props::GraphemeClusterBreak::Extend),
2348            Self::L => databake::quote!(icu_properties::props::GraphemeClusterBreak::L),
2349            Self::LF => databake::quote!(icu_properties::props::GraphemeClusterBreak::LF),
2350            Self::LV => databake::quote!(icu_properties::props::GraphemeClusterBreak::LV),
2351            Self::LVT => databake::quote!(icu_properties::props::GraphemeClusterBreak::LVT),
2352            Self::T => databake::quote!(icu_properties::props::GraphemeClusterBreak::T),
2353            Self::V => databake::quote!(icu_properties::props::GraphemeClusterBreak::V),
2354            Self::SpacingMark => databake::quote!(icu_properties::props::GraphemeClusterBreak::SpacingMark),
2355            Self::Prepend => databake::quote!(icu_properties::props::GraphemeClusterBreak::Prepend),
2356            Self::RegionalIndicator => databake::quote!(icu_properties::props::GraphemeClusterBreak::RegionalIndicator),
2357            Self::EBase => databake::quote!(icu_properties::props::GraphemeClusterBreak::EBase),
2358            Self::EBaseGAZ => databake::quote!(icu_properties::props::GraphemeClusterBreak::EBaseGAZ),
2359            Self::EModifier => databake::quote!(icu_properties::props::GraphemeClusterBreak::EModifier),
2360            Self::GlueAfterZwj => databake::quote!(icu_properties::props::GraphemeClusterBreak::GlueAfterZwj),
2361            Self::ZWJ => databake::quote!(icu_properties::props::GraphemeClusterBreak::ZWJ),
2362            Self(v) => databake::quote!(icu_properties::props::GraphemeClusterBreak(#v)),
2363        }
2364    }
2365}
2366
2367
2368impl From<GraphemeClusterBreak> for u16  {
2369    fn from(other: GraphemeClusterBreak) -> Self {
2370        other.0 as u16
2371    }
2372}
2373
2374impl GraphemeClusterBreak {
2375    /// Deprecated
2376    #[deprecated]
2377    pub const ALL_VALUES: &'static [Self] = &[
2378        Self::Other,
2379        Self::Control,
2380        Self::CR,
2381        Self::Extend,
2382        Self::L,
2383        Self::LF,
2384        Self::LV,
2385        Self::LVT,
2386        Self::T,
2387        Self::V,
2388        Self::SpacingMark,
2389        Self::Prepend,
2390        Self::RegionalIndicator,
2391        Self::EBase,
2392        Self::EBaseGAZ,
2393        Self::EModifier,
2394        Self::GlueAfterZwj,
2395        Self::ZWJ,
2396    ];
2397
2398    #[cfg(feature = "datagen")]
2399    #[doc(hidden)]
2400    pub fn names() -> impl Iterator<Item = (&'static str, Self)> {
2401        [
2402            ("XX", Self::Other),
2403            ("CN", Self::Control),
2404            ("CR", Self::CR),
2405            ("EX", Self::Extend),
2406            ("L", Self::L),
2407            ("LF", Self::LF),
2408            ("LV", Self::LV),
2409            ("LVT", Self::LVT),
2410            ("T", Self::T),
2411            ("V", Self::V),
2412            ("SM", Self::SpacingMark),
2413            ("PP", Self::Prepend),
2414            ("RI", Self::RegionalIndicator),
2415            ("EB", Self::EBase),
2416            ("EBG", Self::EBaseGAZ),
2417            ("EM", Self::EModifier),
2418            ("GAZ", Self::GlueAfterZwj),
2419            ("ZWJ", Self::ZWJ),
2420        ].into_iter()
2421    }
2422}
2423
2424impl HangulSyllableType {
2425    pub const NotApplicable: Self = Self(0);
2426    pub const NA: Self = Self::NotApplicable;
2427    pub const LeadingJamo: Self = Self(1);
2428    pub const L: Self = Self::LeadingJamo;
2429    pub const VowelJamo: Self = Self(2);
2430    pub const V: Self = Self::VowelJamo;
2431    pub const TrailingJamo: Self = Self(3);
2432    pub const T: Self = Self::TrailingJamo;
2433    pub const LVSyllable: Self = Self(4);
2434    pub const LV: Self = Self::LVSyllable;
2435    pub const LVTSyllable: Self = Self(5);
2436    pub const LVT: Self = Self::LVTSyllable;
2437}
2438
2439#[cfg(feature = "datagen")]
2440impl databake::Bake for HangulSyllableType {
2441    fn bake(&self, env: &databake::CrateEnv) -> databake::TokenStream {
2442        env.insert("icu_properties");
2443        match *self {
2444            Self::NotApplicable => databake::quote!(icu_properties::props::HangulSyllableType::NotApplicable),
2445            Self::LeadingJamo => databake::quote!(icu_properties::props::HangulSyllableType::LeadingJamo),
2446            Self::VowelJamo => databake::quote!(icu_properties::props::HangulSyllableType::VowelJamo),
2447            Self::TrailingJamo => databake::quote!(icu_properties::props::HangulSyllableType::TrailingJamo),
2448            Self::LVSyllable => databake::quote!(icu_properties::props::HangulSyllableType::LVSyllable),
2449            Self::LVTSyllable => databake::quote!(icu_properties::props::HangulSyllableType::LVTSyllable),
2450            Self(v) => databake::quote!(icu_properties::props::HangulSyllableType(#v)),
2451        }
2452    }
2453}
2454
2455
2456impl From<HangulSyllableType> for u16  {
2457    fn from(other: HangulSyllableType) -> Self {
2458        other.0 as u16
2459    }
2460}
2461
2462impl HangulSyllableType {
2463    /// Deprecated
2464    #[deprecated]
2465    pub const ALL_VALUES: &'static [Self] = &[
2466        Self::NotApplicable,
2467        Self::LeadingJamo,
2468        Self::VowelJamo,
2469        Self::TrailingJamo,
2470        Self::LVSyllable,
2471        Self::LVTSyllable,
2472    ];
2473
2474    #[cfg(feature = "datagen")]
2475    #[doc(hidden)]
2476    pub fn names() -> impl Iterator<Item = (&'static str, Self)> {
2477        [
2478            ("NA", Self::NotApplicable),
2479            ("L", Self::LeadingJamo),
2480            ("V", Self::VowelJamo),
2481            ("T", Self::TrailingJamo),
2482            ("LV", Self::LVSyllable),
2483            ("LVT", Self::LVTSyllable),
2484        ].into_iter()
2485    }
2486}
2487
2488impl IndicConjunctBreak {
2489    pub const None: Self = Self(0);
2490    pub const Consonant: Self = Self(1);
2491    pub const Extend: Self = Self(2);
2492    pub const Linker: Self = Self(3);
2493}
2494
2495#[cfg(feature = "datagen")]
2496impl databake::Bake for IndicConjunctBreak {
2497    fn bake(&self, env: &databake::CrateEnv) -> databake::TokenStream {
2498        env.insert("icu_properties");
2499        match *self {
2500            Self::None => databake::quote!(icu_properties::props::IndicConjunctBreak::None),
2501            Self::Consonant => databake::quote!(icu_properties::props::IndicConjunctBreak::Consonant),
2502            Self::Extend => databake::quote!(icu_properties::props::IndicConjunctBreak::Extend),
2503            Self::Linker => databake::quote!(icu_properties::props::IndicConjunctBreak::Linker),
2504            Self(v) => databake::quote!(icu_properties::props::IndicConjunctBreak(#v)),
2505        }
2506    }
2507}
2508
2509
2510impl From<IndicConjunctBreak> for u16  {
2511    fn from(other: IndicConjunctBreak) -> Self {
2512        other.0 as u16
2513    }
2514}
2515
2516impl IndicConjunctBreak {
2517    /// Deprecated
2518    #[deprecated]
2519    pub const ALL_VALUES: &'static [Self] = &[
2520        Self::None,
2521        Self::Consonant,
2522        Self::Extend,
2523        Self::Linker,
2524    ];
2525
2526    #[cfg(feature = "datagen")]
2527    #[doc(hidden)]
2528    pub fn names() -> impl Iterator<Item = (&'static str, Self)> {
2529        [
2530            ("None", Self::None),
2531            ("Consonant", Self::Consonant),
2532            ("Extend", Self::Extend),
2533            ("Linker", Self::Linker),
2534        ].into_iter()
2535    }
2536}
2537
2538impl IndicSyllabicCategory {
2539    pub const Other: Self = Self(0);
2540    pub const Avagraha: Self = Self(1);
2541    pub const Bindu: Self = Self(2);
2542    pub const BrahmiJoiningNumber: Self = Self(3);
2543    pub const CantillationMark: Self = Self(4);
2544    pub const Consonant: Self = Self(5);
2545    pub const ConsonantDead: Self = Self(6);
2546    pub const ConsonantFinal: Self = Self(7);
2547    pub const ConsonantHeadLetter: Self = Self(8);
2548    pub const ConsonantInitialPostfixed: Self = Self(9);
2549    pub const ConsonantKiller: Self = Self(10);
2550    pub const ConsonantMedial: Self = Self(11);
2551    pub const ConsonantPlaceholder: Self = Self(12);
2552    pub const ConsonantPrecedingRepha: Self = Self(13);
2553    pub const ConsonantPrefixed: Self = Self(14);
2554    pub const ConsonantSubjoined: Self = Self(15);
2555    pub const ConsonantSucceedingRepha: Self = Self(16);
2556    pub const ConsonantWithStacker: Self = Self(17);
2557    pub const GeminationMark: Self = Self(18);
2558    pub const InvisibleStacker: Self = Self(19);
2559    pub const Joiner: Self = Self(20);
2560    pub const ModifyingLetter: Self = Self(21);
2561    pub const NonJoiner: Self = Self(22);
2562    pub const Nukta: Self = Self(23);
2563    pub const Number: Self = Self(24);
2564    pub const NumberJoiner: Self = Self(25);
2565    pub const PureKiller: Self = Self(26);
2566    pub const RegisterShifter: Self = Self(27);
2567    pub const SyllableModifier: Self = Self(28);
2568    pub const ToneLetter: Self = Self(29);
2569    pub const ToneMark: Self = Self(30);
2570    pub const Virama: Self = Self(31);
2571    pub const Visarga: Self = Self(32);
2572    pub const Vowel: Self = Self(33);
2573    pub const VowelDependent: Self = Self(34);
2574    pub const VowelIndependent: Self = Self(35);
2575    pub const ReorderingKiller: Self = Self(36);
2576}
2577
2578#[cfg(feature = "datagen")]
2579impl databake::Bake for IndicSyllabicCategory {
2580    fn bake(&self, env: &databake::CrateEnv) -> databake::TokenStream {
2581        env.insert("icu_properties");
2582        match *self {
2583            Self::Other => databake::quote!(icu_properties::props::IndicSyllabicCategory::Other),
2584            Self::Avagraha => databake::quote!(icu_properties::props::IndicSyllabicCategory::Avagraha),
2585            Self::Bindu => databake::quote!(icu_properties::props::IndicSyllabicCategory::Bindu),
2586            Self::BrahmiJoiningNumber => databake::quote!(icu_properties::props::IndicSyllabicCategory::BrahmiJoiningNumber),
2587            Self::CantillationMark => databake::quote!(icu_properties::props::IndicSyllabicCategory::CantillationMark),
2588            Self::Consonant => databake::quote!(icu_properties::props::IndicSyllabicCategory::Consonant),
2589            Self::ConsonantDead => databake::quote!(icu_properties::props::IndicSyllabicCategory::ConsonantDead),
2590            Self::ConsonantFinal => databake::quote!(icu_properties::props::IndicSyllabicCategory::ConsonantFinal),
2591            Self::ConsonantHeadLetter => databake::quote!(icu_properties::props::IndicSyllabicCategory::ConsonantHeadLetter),
2592            Self::ConsonantInitialPostfixed => databake::quote!(icu_properties::props::IndicSyllabicCategory::ConsonantInitialPostfixed),
2593            Self::ConsonantKiller => databake::quote!(icu_properties::props::IndicSyllabicCategory::ConsonantKiller),
2594            Self::ConsonantMedial => databake::quote!(icu_properties::props::IndicSyllabicCategory::ConsonantMedial),
2595            Self::ConsonantPlaceholder => databake::quote!(icu_properties::props::IndicSyllabicCategory::ConsonantPlaceholder),
2596            Self::ConsonantPrecedingRepha => databake::quote!(icu_properties::props::IndicSyllabicCategory::ConsonantPrecedingRepha),
2597            Self::ConsonantPrefixed => databake::quote!(icu_properties::props::IndicSyllabicCategory::ConsonantPrefixed),
2598            Self::ConsonantSubjoined => databake::quote!(icu_properties::props::IndicSyllabicCategory::ConsonantSubjoined),
2599            Self::ConsonantSucceedingRepha => databake::quote!(icu_properties::props::IndicSyllabicCategory::ConsonantSucceedingRepha),
2600            Self::ConsonantWithStacker => databake::quote!(icu_properties::props::IndicSyllabicCategory::ConsonantWithStacker),
2601            Self::GeminationMark => databake::quote!(icu_properties::props::IndicSyllabicCategory::GeminationMark),
2602            Self::InvisibleStacker => databake::quote!(icu_properties::props::IndicSyllabicCategory::InvisibleStacker),
2603            Self::Joiner => databake::quote!(icu_properties::props::IndicSyllabicCategory::Joiner),
2604            Self::ModifyingLetter => databake::quote!(icu_properties::props::IndicSyllabicCategory::ModifyingLetter),
2605            Self::NonJoiner => databake::quote!(icu_properties::props::IndicSyllabicCategory::NonJoiner),
2606            Self::Nukta => databake::quote!(icu_properties::props::IndicSyllabicCategory::Nukta),
2607            Self::Number => databake::quote!(icu_properties::props::IndicSyllabicCategory::Number),
2608            Self::NumberJoiner => databake::quote!(icu_properties::props::IndicSyllabicCategory::NumberJoiner),
2609            Self::PureKiller => databake::quote!(icu_properties::props::IndicSyllabicCategory::PureKiller),
2610            Self::RegisterShifter => databake::quote!(icu_properties::props::IndicSyllabicCategory::RegisterShifter),
2611            Self::SyllableModifier => databake::quote!(icu_properties::props::IndicSyllabicCategory::SyllableModifier),
2612            Self::ToneLetter => databake::quote!(icu_properties::props::IndicSyllabicCategory::ToneLetter),
2613            Self::ToneMark => databake::quote!(icu_properties::props::IndicSyllabicCategory::ToneMark),
2614            Self::Virama => databake::quote!(icu_properties::props::IndicSyllabicCategory::Virama),
2615            Self::Visarga => databake::quote!(icu_properties::props::IndicSyllabicCategory::Visarga),
2616            Self::Vowel => databake::quote!(icu_properties::props::IndicSyllabicCategory::Vowel),
2617            Self::VowelDependent => databake::quote!(icu_properties::props::IndicSyllabicCategory::VowelDependent),
2618            Self::VowelIndependent => databake::quote!(icu_properties::props::IndicSyllabicCategory::VowelIndependent),
2619            Self::ReorderingKiller => databake::quote!(icu_properties::props::IndicSyllabicCategory::ReorderingKiller),
2620            Self(v) => databake::quote!(icu_properties::props::IndicSyllabicCategory(#v)),
2621        }
2622    }
2623}
2624
2625
2626impl From<IndicSyllabicCategory> for u16  {
2627    fn from(other: IndicSyllabicCategory) -> Self {
2628        other.0 as u16
2629    }
2630}
2631
2632impl IndicSyllabicCategory {
2633    /// Deprecated
2634    #[deprecated]
2635    pub const ALL_VALUES: &'static [Self] = &[
2636        Self::Other,
2637        Self::Avagraha,
2638        Self::Bindu,
2639        Self::BrahmiJoiningNumber,
2640        Self::CantillationMark,
2641        Self::Consonant,
2642        Self::ConsonantDead,
2643        Self::ConsonantFinal,
2644        Self::ConsonantHeadLetter,
2645        Self::ConsonantInitialPostfixed,
2646        Self::ConsonantKiller,
2647        Self::ConsonantMedial,
2648        Self::ConsonantPlaceholder,
2649        Self::ConsonantPrecedingRepha,
2650        Self::ConsonantPrefixed,
2651        Self::ConsonantSubjoined,
2652        Self::ConsonantSucceedingRepha,
2653        Self::ConsonantWithStacker,
2654        Self::GeminationMark,
2655        Self::InvisibleStacker,
2656        Self::Joiner,
2657        Self::ModifyingLetter,
2658        Self::NonJoiner,
2659        Self::Nukta,
2660        Self::Number,
2661        Self::NumberJoiner,
2662        Self::PureKiller,
2663        Self::RegisterShifter,
2664        Self::SyllableModifier,
2665        Self::ToneLetter,
2666        Self::ToneMark,
2667        Self::Virama,
2668        Self::Visarga,
2669        Self::Vowel,
2670        Self::VowelDependent,
2671        Self::VowelIndependent,
2672        Self::ReorderingKiller,
2673    ];
2674
2675    #[cfg(feature = "datagen")]
2676    #[doc(hidden)]
2677    pub fn names() -> impl Iterator<Item = (&'static str, Self)> {
2678        [
2679            ("Other", Self::Other),
2680            ("Avagraha", Self::Avagraha),
2681            ("Bindu", Self::Bindu),
2682            ("Brahmi_Joining_Number", Self::BrahmiJoiningNumber),
2683            ("Cantillation_Mark", Self::CantillationMark),
2684            ("Consonant", Self::Consonant),
2685            ("Consonant_Dead", Self::ConsonantDead),
2686            ("Consonant_Final", Self::ConsonantFinal),
2687            ("Consonant_Head_Letter", Self::ConsonantHeadLetter),
2688            ("Consonant_Initial_Postfixed", Self::ConsonantInitialPostfixed),
2689            ("Consonant_Killer", Self::ConsonantKiller),
2690            ("Consonant_Medial", Self::ConsonantMedial),
2691            ("Consonant_Placeholder", Self::ConsonantPlaceholder),
2692            ("Consonant_Preceding_Repha", Self::ConsonantPrecedingRepha),
2693            ("Consonant_Prefixed", Self::ConsonantPrefixed),
2694            ("Consonant_Subjoined", Self::ConsonantSubjoined),
2695            ("Consonant_Succeeding_Repha", Self::ConsonantSucceedingRepha),
2696            ("Consonant_With_Stacker", Self::ConsonantWithStacker),
2697            ("Gemination_Mark", Self::GeminationMark),
2698            ("Invisible_Stacker", Self::InvisibleStacker),
2699            ("Joiner", Self::Joiner),
2700            ("Modifying_Letter", Self::ModifyingLetter),
2701            ("Non_Joiner", Self::NonJoiner),
2702            ("Nukta", Self::Nukta),
2703            ("Number", Self::Number),
2704            ("Number_Joiner", Self::NumberJoiner),
2705            ("Pure_Killer", Self::PureKiller),
2706            ("Register_Shifter", Self::RegisterShifter),
2707            ("Syllable_Modifier", Self::SyllableModifier),
2708            ("Tone_Letter", Self::ToneLetter),
2709            ("Tone_Mark", Self::ToneMark),
2710            ("Virama", Self::Virama),
2711            ("Visarga", Self::Visarga),
2712            ("Vowel", Self::Vowel),
2713            ("Vowel_Dependent", Self::VowelDependent),
2714            ("Vowel_Independent", Self::VowelIndependent),
2715            ("Reordering_Killer", Self::ReorderingKiller),
2716        ].into_iter()
2717    }
2718}
2719
2720impl JoiningGroup {
2721    pub const NoJoiningGroup: Self = Self(0);
2722    pub const Ain: Self = Self(1);
2723    pub const Alaph: Self = Self(2);
2724    pub const Alef: Self = Self(3);
2725    pub const Beh: Self = Self(4);
2726    pub const Beth: Self = Self(5);
2727    pub const Dal: Self = Self(6);
2728    pub const DalathRish: Self = Self(7);
2729    pub const E: Self = Self(8);
2730    pub const Feh: Self = Self(9);
2731    pub const FinalSemkath: Self = Self(10);
2732    pub const Gaf: Self = Self(11);
2733    pub const Gamal: Self = Self(12);
2734    pub const Hah: Self = Self(13);
2735    pub const TehMarbutaGoal: Self = Self(14);
2736    pub const HamzaOnHehGoal: Self = Self::TehMarbutaGoal;
2737    pub const He: Self = Self(15);
2738    pub const Heh: Self = Self(16);
2739    pub const HehGoal: Self = Self(17);
2740    pub const Heth: Self = Self(18);
2741    pub const Kaf: Self = Self(19);
2742    pub const Kaph: Self = Self(20);
2743    pub const KnottedHeh: Self = Self(21);
2744    pub const Lam: Self = Self(22);
2745    pub const Lamadh: Self = Self(23);
2746    pub const Meem: Self = Self(24);
2747    pub const Mim: Self = Self(25);
2748    pub const Noon: Self = Self(26);
2749    pub const Nun: Self = Self(27);
2750    pub const Pe: Self = Self(28);
2751    pub const Qaf: Self = Self(29);
2752    pub const Qaph: Self = Self(30);
2753    pub const Reh: Self = Self(31);
2754    pub const ReversedPe: Self = Self(32);
2755    pub const Sad: Self = Self(33);
2756    pub const Sadhe: Self = Self(34);
2757    pub const Seen: Self = Self(35);
2758    pub const Semkath: Self = Self(36);
2759    pub const Shin: Self = Self(37);
2760    pub const SwashKaf: Self = Self(38);
2761    pub const SyriacWaw: Self = Self(39);
2762    pub const Tah: Self = Self(40);
2763    pub const Taw: Self = Self(41);
2764    pub const TehMarbuta: Self = Self(42);
2765    pub const Teth: Self = Self(43);
2766    pub const Waw: Self = Self(44);
2767    pub const Yeh: Self = Self(45);
2768    pub const YehBarree: Self = Self(46);
2769    pub const YehWithTail: Self = Self(47);
2770    pub const Yudh: Self = Self(48);
2771    pub const YudhHe: Self = Self(49);
2772    pub const Zain: Self = Self(50);
2773    pub const Fe: Self = Self(51);
2774    pub const Khaph: Self = Self(52);
2775    pub const Zhain: Self = Self(53);
2776    pub const BurushaskiYehBarree: Self = Self(54);
2777    pub const FarsiYeh: Self = Self(55);
2778    pub const Nya: Self = Self(56);
2779    pub const RohingyaYeh: Self = Self(57);
2780    pub const ManichaeanAleph: Self = Self(58);
2781    pub const ManichaeanAyin: Self = Self(59);
2782    pub const ManichaeanBeth: Self = Self(60);
2783    pub const ManichaeanDaleth: Self = Self(61);
2784    pub const ManichaeanDhamedh: Self = Self(62);
2785    pub const ManichaeanFive: Self = Self(63);
2786    pub const ManichaeanGimel: Self = Self(64);
2787    pub const ManichaeanHeth: Self = Self(65);
2788    pub const ManichaeanHundred: Self = Self(66);
2789    pub const ManichaeanKaph: Self = Self(67);
2790    pub const ManichaeanLamedh: Self = Self(68);
2791    pub const ManichaeanMem: Self = Self(69);
2792    pub const ManichaeanNun: Self = Self(70);
2793    pub const ManichaeanOne: Self = Self(71);
2794    pub const ManichaeanPe: Self = Self(72);
2795    pub const ManichaeanQoph: Self = Self(73);
2796    pub const ManichaeanResh: Self = Self(74);
2797    pub const ManichaeanSadhe: Self = Self(75);
2798    pub const ManichaeanSamekh: Self = Self(76);
2799    pub const ManichaeanTaw: Self = Self(77);
2800    pub const ManichaeanTen: Self = Self(78);
2801    pub const ManichaeanTeth: Self = Self(79);
2802    pub const ManichaeanThamedh: Self = Self(80);
2803    pub const ManichaeanTwenty: Self = Self(81);
2804    pub const ManichaeanWaw: Self = Self(82);
2805    pub const ManichaeanYodh: Self = Self(83);
2806    pub const ManichaeanZayin: Self = Self(84);
2807    pub const StraightWaw: Self = Self(85);
2808    pub const AfricanFeh: Self = Self(86);
2809    pub const AfricanNoon: Self = Self(87);
2810    pub const AfricanQaf: Self = Self(88);
2811    pub const MalayalamBha: Self = Self(89);
2812    pub const MalayalamJa: Self = Self(90);
2813    pub const MalayalamLla: Self = Self(91);
2814    pub const MalayalamLlla: Self = Self(92);
2815    pub const MalayalamNga: Self = Self(93);
2816    pub const MalayalamNna: Self = Self(94);
2817    pub const MalayalamNnna: Self = Self(95);
2818    pub const MalayalamNya: Self = Self(96);
2819    pub const MalayalamRa: Self = Self(97);
2820    pub const MalayalamSsa: Self = Self(98);
2821    pub const MalayalamTta: Self = Self(99);
2822    pub const HanifiRohingyaKinnaYa: Self = Self(100);
2823    pub const HanifiRohingyaPa: Self = Self(101);
2824    pub const ThinYeh: Self = Self(102);
2825    pub const VerticalTail: Self = Self(103);
2826    pub const KashmiriYeh: Self = Self(104);
2827    pub const ThinNoon: Self = Self(105);
2828    pub const CrownAin: Self = Self(106);
2829    pub const CrownBeh: Self = Self(107);
2830    pub const CrownFeh: Self = Self(108);
2831    pub const CrownHah: Self = Self(109);
2832    pub const CrownHeh: Self = Self(110);
2833    pub const CrownKaf: Self = Self(111);
2834    pub const CrownMeem: Self = Self(112);
2835    pub const CrownSad: Self = Self(113);
2836    pub const CrownSeen: Self = Self(114);
2837    pub const CrownTah: Self = Self(115);
2838}
2839
2840#[cfg(feature = "datagen")]
2841impl databake::Bake for JoiningGroup {
2842    fn bake(&self, env: &databake::CrateEnv) -> databake::TokenStream {
2843        env.insert("icu_properties");
2844        match *self {
2845            Self::NoJoiningGroup => databake::quote!(icu_properties::props::JoiningGroup::NoJoiningGroup),
2846            Self::Ain => databake::quote!(icu_properties::props::JoiningGroup::Ain),
2847            Self::Alaph => databake::quote!(icu_properties::props::JoiningGroup::Alaph),
2848            Self::Alef => databake::quote!(icu_properties::props::JoiningGroup::Alef),
2849            Self::Beh => databake::quote!(icu_properties::props::JoiningGroup::Beh),
2850            Self::Beth => databake::quote!(icu_properties::props::JoiningGroup::Beth),
2851            Self::Dal => databake::quote!(icu_properties::props::JoiningGroup::Dal),
2852            Self::DalathRish => databake::quote!(icu_properties::props::JoiningGroup::DalathRish),
2853            Self::E => databake::quote!(icu_properties::props::JoiningGroup::E),
2854            Self::Feh => databake::quote!(icu_properties::props::JoiningGroup::Feh),
2855            Self::FinalSemkath => databake::quote!(icu_properties::props::JoiningGroup::FinalSemkath),
2856            Self::Gaf => databake::quote!(icu_properties::props::JoiningGroup::Gaf),
2857            Self::Gamal => databake::quote!(icu_properties::props::JoiningGroup::Gamal),
2858            Self::Hah => databake::quote!(icu_properties::props::JoiningGroup::Hah),
2859            Self::TehMarbutaGoal => databake::quote!(icu_properties::props::JoiningGroup::TehMarbutaGoal),
2860            Self::He => databake::quote!(icu_properties::props::JoiningGroup::He),
2861            Self::Heh => databake::quote!(icu_properties::props::JoiningGroup::Heh),
2862            Self::HehGoal => databake::quote!(icu_properties::props::JoiningGroup::HehGoal),
2863            Self::Heth => databake::quote!(icu_properties::props::JoiningGroup::Heth),
2864            Self::Kaf => databake::quote!(icu_properties::props::JoiningGroup::Kaf),
2865            Self::Kaph => databake::quote!(icu_properties::props::JoiningGroup::Kaph),
2866            Self::KnottedHeh => databake::quote!(icu_properties::props::JoiningGroup::KnottedHeh),
2867            Self::Lam => databake::quote!(icu_properties::props::JoiningGroup::Lam),
2868            Self::Lamadh => databake::quote!(icu_properties::props::JoiningGroup::Lamadh),
2869            Self::Meem => databake::quote!(icu_properties::props::JoiningGroup::Meem),
2870            Self::Mim => databake::quote!(icu_properties::props::JoiningGroup::Mim),
2871            Self::Noon => databake::quote!(icu_properties::props::JoiningGroup::Noon),
2872            Self::Nun => databake::quote!(icu_properties::props::JoiningGroup::Nun),
2873            Self::Pe => databake::quote!(icu_properties::props::JoiningGroup::Pe),
2874            Self::Qaf => databake::quote!(icu_properties::props::JoiningGroup::Qaf),
2875            Self::Qaph => databake::quote!(icu_properties::props::JoiningGroup::Qaph),
2876            Self::Reh => databake::quote!(icu_properties::props::JoiningGroup::Reh),
2877            Self::ReversedPe => databake::quote!(icu_properties::props::JoiningGroup::ReversedPe),
2878            Self::Sad => databake::quote!(icu_properties::props::JoiningGroup::Sad),
2879            Self::Sadhe => databake::quote!(icu_properties::props::JoiningGroup::Sadhe),
2880            Self::Seen => databake::quote!(icu_properties::props::JoiningGroup::Seen),
2881            Self::Semkath => databake::quote!(icu_properties::props::JoiningGroup::Semkath),
2882            Self::Shin => databake::quote!(icu_properties::props::JoiningGroup::Shin),
2883            Self::SwashKaf => databake::quote!(icu_properties::props::JoiningGroup::SwashKaf),
2884            Self::SyriacWaw => databake::quote!(icu_properties::props::JoiningGroup::SyriacWaw),
2885            Self::Tah => databake::quote!(icu_properties::props::JoiningGroup::Tah),
2886            Self::Taw => databake::quote!(icu_properties::props::JoiningGroup::Taw),
2887            Self::TehMarbuta => databake::quote!(icu_properties::props::JoiningGroup::TehMarbuta),
2888            Self::Teth => databake::quote!(icu_properties::props::JoiningGroup::Teth),
2889            Self::Waw => databake::quote!(icu_properties::props::JoiningGroup::Waw),
2890            Self::Yeh => databake::quote!(icu_properties::props::JoiningGroup::Yeh),
2891            Self::YehBarree => databake::quote!(icu_properties::props::JoiningGroup::YehBarree),
2892            Self::YehWithTail => databake::quote!(icu_properties::props::JoiningGroup::YehWithTail),
2893            Self::Yudh => databake::quote!(icu_properties::props::JoiningGroup::Yudh),
2894            Self::YudhHe => databake::quote!(icu_properties::props::JoiningGroup::YudhHe),
2895            Self::Zain => databake::quote!(icu_properties::props::JoiningGroup::Zain),
2896            Self::Fe => databake::quote!(icu_properties::props::JoiningGroup::Fe),
2897            Self::Khaph => databake::quote!(icu_properties::props::JoiningGroup::Khaph),
2898            Self::Zhain => databake::quote!(icu_properties::props::JoiningGroup::Zhain),
2899            Self::BurushaskiYehBarree => databake::quote!(icu_properties::props::JoiningGroup::BurushaskiYehBarree),
2900            Self::FarsiYeh => databake::quote!(icu_properties::props::JoiningGroup::FarsiYeh),
2901            Self::Nya => databake::quote!(icu_properties::props::JoiningGroup::Nya),
2902            Self::RohingyaYeh => databake::quote!(icu_properties::props::JoiningGroup::RohingyaYeh),
2903            Self::ManichaeanAleph => databake::quote!(icu_properties::props::JoiningGroup::ManichaeanAleph),
2904            Self::ManichaeanAyin => databake::quote!(icu_properties::props::JoiningGroup::ManichaeanAyin),
2905            Self::ManichaeanBeth => databake::quote!(icu_properties::props::JoiningGroup::ManichaeanBeth),
2906            Self::ManichaeanDaleth => databake::quote!(icu_properties::props::JoiningGroup::ManichaeanDaleth),
2907            Self::ManichaeanDhamedh => databake::quote!(icu_properties::props::JoiningGroup::ManichaeanDhamedh),
2908            Self::ManichaeanFive => databake::quote!(icu_properties::props::JoiningGroup::ManichaeanFive),
2909            Self::ManichaeanGimel => databake::quote!(icu_properties::props::JoiningGroup::ManichaeanGimel),
2910            Self::ManichaeanHeth => databake::quote!(icu_properties::props::JoiningGroup::ManichaeanHeth),
2911            Self::ManichaeanHundred => databake::quote!(icu_properties::props::JoiningGroup::ManichaeanHundred),
2912            Self::ManichaeanKaph => databake::quote!(icu_properties::props::JoiningGroup::ManichaeanKaph),
2913            Self::ManichaeanLamedh => databake::quote!(icu_properties::props::JoiningGroup::ManichaeanLamedh),
2914            Self::ManichaeanMem => databake::quote!(icu_properties::props::JoiningGroup::ManichaeanMem),
2915            Self::ManichaeanNun => databake::quote!(icu_properties::props::JoiningGroup::ManichaeanNun),
2916            Self::ManichaeanOne => databake::quote!(icu_properties::props::JoiningGroup::ManichaeanOne),
2917            Self::ManichaeanPe => databake::quote!(icu_properties::props::JoiningGroup::ManichaeanPe),
2918            Self::ManichaeanQoph => databake::quote!(icu_properties::props::JoiningGroup::ManichaeanQoph),
2919            Self::ManichaeanResh => databake::quote!(icu_properties::props::JoiningGroup::ManichaeanResh),
2920            Self::ManichaeanSadhe => databake::quote!(icu_properties::props::JoiningGroup::ManichaeanSadhe),
2921            Self::ManichaeanSamekh => databake::quote!(icu_properties::props::JoiningGroup::ManichaeanSamekh),
2922            Self::ManichaeanTaw => databake::quote!(icu_properties::props::JoiningGroup::ManichaeanTaw),
2923            Self::ManichaeanTen => databake::quote!(icu_properties::props::JoiningGroup::ManichaeanTen),
2924            Self::ManichaeanTeth => databake::quote!(icu_properties::props::JoiningGroup::ManichaeanTeth),
2925            Self::ManichaeanThamedh => databake::quote!(icu_properties::props::JoiningGroup::ManichaeanThamedh),
2926            Self::ManichaeanTwenty => databake::quote!(icu_properties::props::JoiningGroup::ManichaeanTwenty),
2927            Self::ManichaeanWaw => databake::quote!(icu_properties::props::JoiningGroup::ManichaeanWaw),
2928            Self::ManichaeanYodh => databake::quote!(icu_properties::props::JoiningGroup::ManichaeanYodh),
2929            Self::ManichaeanZayin => databake::quote!(icu_properties::props::JoiningGroup::ManichaeanZayin),
2930            Self::StraightWaw => databake::quote!(icu_properties::props::JoiningGroup::StraightWaw),
2931            Self::AfricanFeh => databake::quote!(icu_properties::props::JoiningGroup::AfricanFeh),
2932            Self::AfricanNoon => databake::quote!(icu_properties::props::JoiningGroup::AfricanNoon),
2933            Self::AfricanQaf => databake::quote!(icu_properties::props::JoiningGroup::AfricanQaf),
2934            Self::MalayalamBha => databake::quote!(icu_properties::props::JoiningGroup::MalayalamBha),
2935            Self::MalayalamJa => databake::quote!(icu_properties::props::JoiningGroup::MalayalamJa),
2936            Self::MalayalamLla => databake::quote!(icu_properties::props::JoiningGroup::MalayalamLla),
2937            Self::MalayalamLlla => databake::quote!(icu_properties::props::JoiningGroup::MalayalamLlla),
2938            Self::MalayalamNga => databake::quote!(icu_properties::props::JoiningGroup::MalayalamNga),
2939            Self::MalayalamNna => databake::quote!(icu_properties::props::JoiningGroup::MalayalamNna),
2940            Self::MalayalamNnna => databake::quote!(icu_properties::props::JoiningGroup::MalayalamNnna),
2941            Self::MalayalamNya => databake::quote!(icu_properties::props::JoiningGroup::MalayalamNya),
2942            Self::MalayalamRa => databake::quote!(icu_properties::props::JoiningGroup::MalayalamRa),
2943            Self::MalayalamSsa => databake::quote!(icu_properties::props::JoiningGroup::MalayalamSsa),
2944            Self::MalayalamTta => databake::quote!(icu_properties::props::JoiningGroup::MalayalamTta),
2945            Self::HanifiRohingyaKinnaYa => databake::quote!(icu_properties::props::JoiningGroup::HanifiRohingyaKinnaYa),
2946            Self::HanifiRohingyaPa => databake::quote!(icu_properties::props::JoiningGroup::HanifiRohingyaPa),
2947            Self::ThinYeh => databake::quote!(icu_properties::props::JoiningGroup::ThinYeh),
2948            Self::VerticalTail => databake::quote!(icu_properties::props::JoiningGroup::VerticalTail),
2949            Self::KashmiriYeh => databake::quote!(icu_properties::props::JoiningGroup::KashmiriYeh),
2950            Self::ThinNoon => databake::quote!(icu_properties::props::JoiningGroup::ThinNoon),
2951            Self::CrownAin => databake::quote!(icu_properties::props::JoiningGroup::CrownAin),
2952            Self::CrownBeh => databake::quote!(icu_properties::props::JoiningGroup::CrownBeh),
2953            Self::CrownFeh => databake::quote!(icu_properties::props::JoiningGroup::CrownFeh),
2954            Self::CrownHah => databake::quote!(icu_properties::props::JoiningGroup::CrownHah),
2955            Self::CrownHeh => databake::quote!(icu_properties::props::JoiningGroup::CrownHeh),
2956            Self::CrownKaf => databake::quote!(icu_properties::props::JoiningGroup::CrownKaf),
2957            Self::CrownMeem => databake::quote!(icu_properties::props::JoiningGroup::CrownMeem),
2958            Self::CrownSad => databake::quote!(icu_properties::props::JoiningGroup::CrownSad),
2959            Self::CrownSeen => databake::quote!(icu_properties::props::JoiningGroup::CrownSeen),
2960            Self::CrownTah => databake::quote!(icu_properties::props::JoiningGroup::CrownTah),
2961            Self(v) => databake::quote!(icu_properties::props::JoiningGroup(#v)),
2962        }
2963    }
2964}
2965
2966
2967impl From<JoiningGroup> for u16  {
2968    fn from(other: JoiningGroup) -> Self {
2969        other.0 as u16
2970    }
2971}
2972
2973impl JoiningGroup {
2974    /// Deprecated
2975    #[deprecated]
2976    pub const ALL_VALUES: &'static [Self] = &[
2977        Self::NoJoiningGroup,
2978        Self::Ain,
2979        Self::Alaph,
2980        Self::Alef,
2981        Self::Beh,
2982        Self::Beth,
2983        Self::Dal,
2984        Self::DalathRish,
2985        Self::E,
2986        Self::Feh,
2987        Self::FinalSemkath,
2988        Self::Gaf,
2989        Self::Gamal,
2990        Self::Hah,
2991        Self::TehMarbutaGoal,
2992        Self::He,
2993        Self::Heh,
2994        Self::HehGoal,
2995        Self::Heth,
2996        Self::Kaf,
2997        Self::Kaph,
2998        Self::KnottedHeh,
2999        Self::Lam,
3000        Self::Lamadh,
3001        Self::Meem,
3002        Self::Mim,
3003        Self::Noon,
3004        Self::Nun,
3005        Self::Pe,
3006        Self::Qaf,
3007        Self::Qaph,
3008        Self::Reh,
3009        Self::ReversedPe,
3010        Self::Sad,
3011        Self::Sadhe,
3012        Self::Seen,
3013        Self::Semkath,
3014        Self::Shin,
3015        Self::SwashKaf,
3016        Self::SyriacWaw,
3017        Self::Tah,
3018        Self::Taw,
3019        Self::TehMarbuta,
3020        Self::Teth,
3021        Self::Waw,
3022        Self::Yeh,
3023        Self::YehBarree,
3024        Self::YehWithTail,
3025        Self::Yudh,
3026        Self::YudhHe,
3027        Self::Zain,
3028        Self::Fe,
3029        Self::Khaph,
3030        Self::Zhain,
3031        Self::BurushaskiYehBarree,
3032        Self::FarsiYeh,
3033        Self::Nya,
3034        Self::RohingyaYeh,
3035        Self::ManichaeanAleph,
3036        Self::ManichaeanAyin,
3037        Self::ManichaeanBeth,
3038        Self::ManichaeanDaleth,
3039        Self::ManichaeanDhamedh,
3040        Self::ManichaeanFive,
3041        Self::ManichaeanGimel,
3042        Self::ManichaeanHeth,
3043        Self::ManichaeanHundred,
3044        Self::ManichaeanKaph,
3045        Self::ManichaeanLamedh,
3046        Self::ManichaeanMem,
3047        Self::ManichaeanNun,
3048        Self::ManichaeanOne,
3049        Self::ManichaeanPe,
3050        Self::ManichaeanQoph,
3051        Self::ManichaeanResh,
3052        Self::ManichaeanSadhe,
3053        Self::ManichaeanSamekh,
3054        Self::ManichaeanTaw,
3055        Self::ManichaeanTen,
3056        Self::ManichaeanTeth,
3057        Self::ManichaeanThamedh,
3058        Self::ManichaeanTwenty,
3059        Self::ManichaeanWaw,
3060        Self::ManichaeanYodh,
3061        Self::ManichaeanZayin,
3062        Self::StraightWaw,
3063        Self::AfricanFeh,
3064        Self::AfricanNoon,
3065        Self::AfricanQaf,
3066        Self::MalayalamBha,
3067        Self::MalayalamJa,
3068        Self::MalayalamLla,
3069        Self::MalayalamLlla,
3070        Self::MalayalamNga,
3071        Self::MalayalamNna,
3072        Self::MalayalamNnna,
3073        Self::MalayalamNya,
3074        Self::MalayalamRa,
3075        Self::MalayalamSsa,
3076        Self::MalayalamTta,
3077        Self::HanifiRohingyaKinnaYa,
3078        Self::HanifiRohingyaPa,
3079        Self::ThinYeh,
3080        Self::VerticalTail,
3081        Self::KashmiriYeh,
3082        Self::ThinNoon,
3083        Self::CrownAin,
3084        Self::CrownBeh,
3085        Self::CrownFeh,
3086        Self::CrownHah,
3087        Self::CrownHeh,
3088        Self::CrownKaf,
3089        Self::CrownMeem,
3090        Self::CrownSad,
3091        Self::CrownSeen,
3092        Self::CrownTah,
3093    ];
3094
3095    #[cfg(feature = "datagen")]
3096    #[doc(hidden)]
3097    pub fn names() -> impl Iterator<Item = (&'static str, Self)> {
3098        [
3099            ("No_Joining_Group", Self::NoJoiningGroup),
3100            ("Ain", Self::Ain),
3101            ("Alaph", Self::Alaph),
3102            ("Alef", Self::Alef),
3103            ("Beh", Self::Beh),
3104            ("Beth", Self::Beth),
3105            ("Dal", Self::Dal),
3106            ("Dalath_Rish", Self::DalathRish),
3107            ("E", Self::E),
3108            ("Feh", Self::Feh),
3109            ("Final_Semkath", Self::FinalSemkath),
3110            ("Gaf", Self::Gaf),
3111            ("Gamal", Self::Gamal),
3112            ("Hah", Self::Hah),
3113            ("Teh_Marbuta_Goal", Self::TehMarbutaGoal),
3114            ("He", Self::He),
3115            ("Heh", Self::Heh),
3116            ("Heh_Goal", Self::HehGoal),
3117            ("Heth", Self::Heth),
3118            ("Kaf", Self::Kaf),
3119            ("Kaph", Self::Kaph),
3120            ("Knotted_Heh", Self::KnottedHeh),
3121            ("Lam", Self::Lam),
3122            ("Lamadh", Self::Lamadh),
3123            ("Meem", Self::Meem),
3124            ("Mim", Self::Mim),
3125            ("Noon", Self::Noon),
3126            ("Nun", Self::Nun),
3127            ("Pe", Self::Pe),
3128            ("Qaf", Self::Qaf),
3129            ("Qaph", Self::Qaph),
3130            ("Reh", Self::Reh),
3131            ("Reversed_Pe", Self::ReversedPe),
3132            ("Sad", Self::Sad),
3133            ("Sadhe", Self::Sadhe),
3134            ("Seen", Self::Seen),
3135            ("Semkath", Self::Semkath),
3136            ("Shin", Self::Shin),
3137            ("Swash_Kaf", Self::SwashKaf),
3138            ("Syriac_Waw", Self::SyriacWaw),
3139            ("Tah", Self::Tah),
3140            ("Taw", Self::Taw),
3141            ("Teh_Marbuta", Self::TehMarbuta),
3142            ("Teth", Self::Teth),
3143            ("Waw", Self::Waw),
3144            ("Yeh", Self::Yeh),
3145            ("Yeh_Barree", Self::YehBarree),
3146            ("Yeh_With_Tail", Self::YehWithTail),
3147            ("Yudh", Self::Yudh),
3148            ("Yudh_He", Self::YudhHe),
3149            ("Zain", Self::Zain),
3150            ("Fe", Self::Fe),
3151            ("Khaph", Self::Khaph),
3152            ("Zhain", Self::Zhain),
3153            ("Burushaski_Yeh_Barree", Self::BurushaskiYehBarree),
3154            ("Farsi_Yeh", Self::FarsiYeh),
3155            ("Nya", Self::Nya),
3156            ("Rohingya_Yeh", Self::RohingyaYeh),
3157            ("Manichaean_Aleph", Self::ManichaeanAleph),
3158            ("Manichaean_Ayin", Self::ManichaeanAyin),
3159            ("Manichaean_Beth", Self::ManichaeanBeth),
3160            ("Manichaean_Daleth", Self::ManichaeanDaleth),
3161            ("Manichaean_Dhamedh", Self::ManichaeanDhamedh),
3162            ("Manichaean_Five", Self::ManichaeanFive),
3163            ("Manichaean_Gimel", Self::ManichaeanGimel),
3164            ("Manichaean_Heth", Self::ManichaeanHeth),
3165            ("Manichaean_Hundred", Self::ManichaeanHundred),
3166            ("Manichaean_Kaph", Self::ManichaeanKaph),
3167            ("Manichaean_Lamedh", Self::ManichaeanLamedh),
3168            ("Manichaean_Mem", Self::ManichaeanMem),
3169            ("Manichaean_Nun", Self::ManichaeanNun),
3170            ("Manichaean_One", Self::ManichaeanOne),
3171            ("Manichaean_Pe", Self::ManichaeanPe),
3172            ("Manichaean_Qoph", Self::ManichaeanQoph),
3173            ("Manichaean_Resh", Self::ManichaeanResh),
3174            ("Manichaean_Sadhe", Self::ManichaeanSadhe),
3175            ("Manichaean_Samekh", Self::ManichaeanSamekh),
3176            ("Manichaean_Taw", Self::ManichaeanTaw),
3177            ("Manichaean_Ten", Self::ManichaeanTen),
3178            ("Manichaean_Teth", Self::ManichaeanTeth),
3179            ("Manichaean_Thamedh", Self::ManichaeanThamedh),
3180            ("Manichaean_Twenty", Self::ManichaeanTwenty),
3181            ("Manichaean_Waw", Self::ManichaeanWaw),
3182            ("Manichaean_Yodh", Self::ManichaeanYodh),
3183            ("Manichaean_Zayin", Self::ManichaeanZayin),
3184            ("Straight_Waw", Self::StraightWaw),
3185            ("African_Feh", Self::AfricanFeh),
3186            ("African_Noon", Self::AfricanNoon),
3187            ("African_Qaf", Self::AfricanQaf),
3188            ("Malayalam_Bha", Self::MalayalamBha),
3189            ("Malayalam_Ja", Self::MalayalamJa),
3190            ("Malayalam_Lla", Self::MalayalamLla),
3191            ("Malayalam_Llla", Self::MalayalamLlla),
3192            ("Malayalam_Nga", Self::MalayalamNga),
3193            ("Malayalam_Nna", Self::MalayalamNna),
3194            ("Malayalam_Nnna", Self::MalayalamNnna),
3195            ("Malayalam_Nya", Self::MalayalamNya),
3196            ("Malayalam_Ra", Self::MalayalamRa),
3197            ("Malayalam_Ssa", Self::MalayalamSsa),
3198            ("Malayalam_Tta", Self::MalayalamTta),
3199            ("Hanifi_Rohingya_Kinna_Ya", Self::HanifiRohingyaKinnaYa),
3200            ("Hanifi_Rohingya_Pa", Self::HanifiRohingyaPa),
3201            ("Thin_Yeh", Self::ThinYeh),
3202            ("Vertical_Tail", Self::VerticalTail),
3203            ("Kashmiri_Yeh", Self::KashmiriYeh),
3204            ("Thin_Noon", Self::ThinNoon),
3205            ("Crown_Ain", Self::CrownAin),
3206            ("Crown_Beh", Self::CrownBeh),
3207            ("Crown_Feh", Self::CrownFeh),
3208            ("Crown_Hah", Self::CrownHah),
3209            ("Crown_Heh", Self::CrownHeh),
3210            ("Crown_Kaf", Self::CrownKaf),
3211            ("Crown_Meem", Self::CrownMeem),
3212            ("Crown_Sad", Self::CrownSad),
3213            ("Crown_Seen", Self::CrownSeen),
3214            ("Crown_Tah", Self::CrownTah),
3215        ].into_iter()
3216    }
3217}
3218
3219impl JoiningType {
3220    pub const NonJoining: Self = Self(0);
3221    pub const U: Self = Self::NonJoining;
3222    pub const JoinCausing: Self = Self(1);
3223    pub const C: Self = Self::JoinCausing;
3224    pub const DualJoining: Self = Self(2);
3225    pub const D: Self = Self::DualJoining;
3226    pub const LeftJoining: Self = Self(3);
3227    pub const L: Self = Self::LeftJoining;
3228    pub const RightJoining: Self = Self(4);
3229    pub const R: Self = Self::RightJoining;
3230    pub const Transparent: Self = Self(5);
3231    pub const T: Self = Self::Transparent;
3232}
3233
3234#[cfg(feature = "datagen")]
3235impl databake::Bake for JoiningType {
3236    fn bake(&self, env: &databake::CrateEnv) -> databake::TokenStream {
3237        env.insert("icu_properties");
3238        match *self {
3239            Self::NonJoining => databake::quote!(icu_properties::props::JoiningType::NonJoining),
3240            Self::JoinCausing => databake::quote!(icu_properties::props::JoiningType::JoinCausing),
3241            Self::DualJoining => databake::quote!(icu_properties::props::JoiningType::DualJoining),
3242            Self::LeftJoining => databake::quote!(icu_properties::props::JoiningType::LeftJoining),
3243            Self::RightJoining => databake::quote!(icu_properties::props::JoiningType::RightJoining),
3244            Self::Transparent => databake::quote!(icu_properties::props::JoiningType::Transparent),
3245            Self(v) => databake::quote!(icu_properties::props::JoiningType(#v)),
3246        }
3247    }
3248}
3249
3250
3251impl From<JoiningType> for u16  {
3252    fn from(other: JoiningType) -> Self {
3253        other.0 as u16
3254    }
3255}
3256
3257impl JoiningType {
3258    /// Deprecated
3259    #[deprecated]
3260    pub const ALL_VALUES: &'static [Self] = &[
3261        Self::NonJoining,
3262        Self::JoinCausing,
3263        Self::DualJoining,
3264        Self::LeftJoining,
3265        Self::RightJoining,
3266        Self::Transparent,
3267    ];
3268
3269    #[cfg(feature = "datagen")]
3270    #[doc(hidden)]
3271    pub fn names() -> impl Iterator<Item = (&'static str, Self)> {
3272        [
3273            ("U", Self::NonJoining),
3274            ("C", Self::JoinCausing),
3275            ("D", Self::DualJoining),
3276            ("L", Self::LeftJoining),
3277            ("R", Self::RightJoining),
3278            ("T", Self::Transparent),
3279        ].into_iter()
3280    }
3281}
3282
3283impl LineBreak {
3284    pub const Unknown: Self = Self(0);
3285    pub const XX: Self = Self::Unknown;
3286    pub const Ambiguous: Self = Self(1);
3287    pub const AI: Self = Self::Ambiguous;
3288    pub const Alphabetic: Self = Self(2);
3289    pub const AL: Self = Self::Alphabetic;
3290    pub const BreakBoth: Self = Self(3);
3291    pub const B2: Self = Self::BreakBoth;
3292    pub const BreakAfter: Self = Self(4);
3293    pub const BA: Self = Self::BreakAfter;
3294    pub const BreakBefore: Self = Self(5);
3295    pub const BB: Self = Self::BreakBefore;
3296    pub const MandatoryBreak: Self = Self(6);
3297    pub const BK: Self = Self::MandatoryBreak;
3298    pub const ContingentBreak: Self = Self(7);
3299    pub const CB: Self = Self::ContingentBreak;
3300    pub const ClosePunctuation: Self = Self(8);
3301    pub const CL: Self = Self::ClosePunctuation;
3302    pub const CombiningMark: Self = Self(9);
3303    pub const CM: Self = Self::CombiningMark;
3304    pub const CarriageReturn: Self = Self(10);
3305    pub const CR: Self = Self::CarriageReturn;
3306    pub const Exclamation: Self = Self(11);
3307    pub const EX: Self = Self::Exclamation;
3308    pub const Glue: Self = Self(12);
3309    pub const GL: Self = Self::Glue;
3310    pub const Hyphen: Self = Self(13);
3311    pub const HY: Self = Self::Hyphen;
3312    pub const Ideographic: Self = Self(14);
3313    pub const ID: Self = Self::Ideographic;
3314    pub const Inseparable: Self = Self(15);
3315    pub const IN: Self = Self::Inseparable;
3316    pub const Inseperable: Self = Self::Inseparable;
3317    pub const InfixNumeric: Self = Self(16);
3318    pub const IS: Self = Self::InfixNumeric;
3319    pub const LineFeed: Self = Self(17);
3320    pub const LF: Self = Self::LineFeed;
3321    pub const Nonstarter: Self = Self(18);
3322    pub const NS: Self = Self::Nonstarter;
3323    pub const Numeric: Self = Self(19);
3324    pub const NU: Self = Self::Numeric;
3325    pub const OpenPunctuation: Self = Self(20);
3326    pub const OP: Self = Self::OpenPunctuation;
3327    pub const PostfixNumeric: Self = Self(21);
3328    pub const PO: Self = Self::PostfixNumeric;
3329    pub const PrefixNumeric: Self = Self(22);
3330    pub const PR: Self = Self::PrefixNumeric;
3331    pub const Quotation: Self = Self(23);
3332    pub const QU: Self = Self::Quotation;
3333    pub const ComplexContext: Self = Self(24);
3334    pub const SA: Self = Self::ComplexContext;
3335    pub const Surrogate: Self = Self(25);
3336    pub const SG: Self = Self::Surrogate;
3337    pub const Space: Self = Self(26);
3338    pub const SP: Self = Self::Space;
3339    pub const BreakSymbols: Self = Self(27);
3340    pub const SY: Self = Self::BreakSymbols;
3341    pub const ZWSpace: Self = Self(28);
3342    pub const ZW: Self = Self::ZWSpace;
3343    pub const NextLine: Self = Self(29);
3344    pub const NL: Self = Self::NextLine;
3345    pub const WordJoiner: Self = Self(30);
3346    pub const WJ: Self = Self::WordJoiner;
3347    pub const H2: Self = Self(31);
3348    pub const H3: Self = Self(32);
3349    pub const JL: Self = Self(33);
3350    pub const JT: Self = Self(34);
3351    pub const JV: Self = Self(35);
3352    pub const CloseParenthesis: Self = Self(36);
3353    pub const CP: Self = Self::CloseParenthesis;
3354    pub const ConditionalJapaneseStarter: Self = Self(37);
3355    pub const CJ: Self = Self::ConditionalJapaneseStarter;
3356    pub const HebrewLetter: Self = Self(38);
3357    pub const HL: Self = Self::HebrewLetter;
3358    pub const RegionalIndicator: Self = Self(39);
3359    pub const RI: Self = Self::RegionalIndicator;
3360    pub const EBase: Self = Self(40);
3361    pub const EB: Self = Self::EBase;
3362    pub const EModifier: Self = Self(41);
3363    pub const EM: Self = Self::EModifier;
3364    pub const ZWJ: Self = Self(42);
3365    pub const Aksara: Self = Self(43);
3366    pub const AK: Self = Self::Aksara;
3367    pub const AksaraPrebase: Self = Self(44);
3368    pub const AP: Self = Self::AksaraPrebase;
3369    pub const AksaraStart: Self = Self(45);
3370    pub const AS: Self = Self::AksaraStart;
3371    pub const ViramaFinal: Self = Self(46);
3372    pub const VF: Self = Self::ViramaFinal;
3373    pub const Virama: Self = Self(47);
3374    pub const VI: Self = Self::Virama;
3375    pub const UnambiguousHyphen: Self = Self(48);
3376    pub const HH: Self = Self::UnambiguousHyphen;
3377}
3378
3379#[cfg(feature = "datagen")]
3380impl databake::Bake for LineBreak {
3381    fn bake(&self, env: &databake::CrateEnv) -> databake::TokenStream {
3382        env.insert("icu_properties");
3383        match *self {
3384            Self::Unknown => databake::quote!(icu_properties::props::LineBreak::Unknown),
3385            Self::Ambiguous => databake::quote!(icu_properties::props::LineBreak::Ambiguous),
3386            Self::Alphabetic => databake::quote!(icu_properties::props::LineBreak::Alphabetic),
3387            Self::BreakBoth => databake::quote!(icu_properties::props::LineBreak::BreakBoth),
3388            Self::BreakAfter => databake::quote!(icu_properties::props::LineBreak::BreakAfter),
3389            Self::BreakBefore => databake::quote!(icu_properties::props::LineBreak::BreakBefore),
3390            Self::MandatoryBreak => databake::quote!(icu_properties::props::LineBreak::MandatoryBreak),
3391            Self::ContingentBreak => databake::quote!(icu_properties::props::LineBreak::ContingentBreak),
3392            Self::ClosePunctuation => databake::quote!(icu_properties::props::LineBreak::ClosePunctuation),
3393            Self::CombiningMark => databake::quote!(icu_properties::props::LineBreak::CombiningMark),
3394            Self::CarriageReturn => databake::quote!(icu_properties::props::LineBreak::CarriageReturn),
3395            Self::Exclamation => databake::quote!(icu_properties::props::LineBreak::Exclamation),
3396            Self::Glue => databake::quote!(icu_properties::props::LineBreak::Glue),
3397            Self::Hyphen => databake::quote!(icu_properties::props::LineBreak::Hyphen),
3398            Self::Ideographic => databake::quote!(icu_properties::props::LineBreak::Ideographic),
3399            Self::Inseparable => databake::quote!(icu_properties::props::LineBreak::Inseparable),
3400            Self::InfixNumeric => databake::quote!(icu_properties::props::LineBreak::InfixNumeric),
3401            Self::LineFeed => databake::quote!(icu_properties::props::LineBreak::LineFeed),
3402            Self::Nonstarter => databake::quote!(icu_properties::props::LineBreak::Nonstarter),
3403            Self::Numeric => databake::quote!(icu_properties::props::LineBreak::Numeric),
3404            Self::OpenPunctuation => databake::quote!(icu_properties::props::LineBreak::OpenPunctuation),
3405            Self::PostfixNumeric => databake::quote!(icu_properties::props::LineBreak::PostfixNumeric),
3406            Self::PrefixNumeric => databake::quote!(icu_properties::props::LineBreak::PrefixNumeric),
3407            Self::Quotation => databake::quote!(icu_properties::props::LineBreak::Quotation),
3408            Self::ComplexContext => databake::quote!(icu_properties::props::LineBreak::ComplexContext),
3409            Self::Surrogate => databake::quote!(icu_properties::props::LineBreak::Surrogate),
3410            Self::Space => databake::quote!(icu_properties::props::LineBreak::Space),
3411            Self::BreakSymbols => databake::quote!(icu_properties::props::LineBreak::BreakSymbols),
3412            Self::ZWSpace => databake::quote!(icu_properties::props::LineBreak::ZWSpace),
3413            Self::NextLine => databake::quote!(icu_properties::props::LineBreak::NextLine),
3414            Self::WordJoiner => databake::quote!(icu_properties::props::LineBreak::WordJoiner),
3415            Self::H2 => databake::quote!(icu_properties::props::LineBreak::H2),
3416            Self::H3 => databake::quote!(icu_properties::props::LineBreak::H3),
3417            Self::JL => databake::quote!(icu_properties::props::LineBreak::JL),
3418            Self::JT => databake::quote!(icu_properties::props::LineBreak::JT),
3419            Self::JV => databake::quote!(icu_properties::props::LineBreak::JV),
3420            Self::CloseParenthesis => databake::quote!(icu_properties::props::LineBreak::CloseParenthesis),
3421            Self::ConditionalJapaneseStarter => databake::quote!(icu_properties::props::LineBreak::ConditionalJapaneseStarter),
3422            Self::HebrewLetter => databake::quote!(icu_properties::props::LineBreak::HebrewLetter),
3423            Self::RegionalIndicator => databake::quote!(icu_properties::props::LineBreak::RegionalIndicator),
3424            Self::EBase => databake::quote!(icu_properties::props::LineBreak::EBase),
3425            Self::EModifier => databake::quote!(icu_properties::props::LineBreak::EModifier),
3426            Self::ZWJ => databake::quote!(icu_properties::props::LineBreak::ZWJ),
3427            Self::Aksara => databake::quote!(icu_properties::props::LineBreak::Aksara),
3428            Self::AksaraPrebase => databake::quote!(icu_properties::props::LineBreak::AksaraPrebase),
3429            Self::AksaraStart => databake::quote!(icu_properties::props::LineBreak::AksaraStart),
3430            Self::ViramaFinal => databake::quote!(icu_properties::props::LineBreak::ViramaFinal),
3431            Self::Virama => databake::quote!(icu_properties::props::LineBreak::Virama),
3432            Self::UnambiguousHyphen => databake::quote!(icu_properties::props::LineBreak::UnambiguousHyphen),
3433            Self(v) => databake::quote!(icu_properties::props::LineBreak(#v)),
3434        }
3435    }
3436}
3437
3438
3439impl From<LineBreak> for u16  {
3440    fn from(other: LineBreak) -> Self {
3441        other.0 as u16
3442    }
3443}
3444
3445impl LineBreak {
3446    /// Deprecated
3447    #[deprecated]
3448    pub const ALL_VALUES: &'static [Self] = &[
3449        Self::Unknown,
3450        Self::Ambiguous,
3451        Self::Alphabetic,
3452        Self::BreakBoth,
3453        Self::BreakAfter,
3454        Self::BreakBefore,
3455        Self::MandatoryBreak,
3456        Self::ContingentBreak,
3457        Self::ClosePunctuation,
3458        Self::CombiningMark,
3459        Self::CarriageReturn,
3460        Self::Exclamation,
3461        Self::Glue,
3462        Self::Hyphen,
3463        Self::Ideographic,
3464        Self::Inseparable,
3465        Self::InfixNumeric,
3466        Self::LineFeed,
3467        Self::Nonstarter,
3468        Self::Numeric,
3469        Self::OpenPunctuation,
3470        Self::PostfixNumeric,
3471        Self::PrefixNumeric,
3472        Self::Quotation,
3473        Self::ComplexContext,
3474        Self::Surrogate,
3475        Self::Space,
3476        Self::BreakSymbols,
3477        Self::ZWSpace,
3478        Self::NextLine,
3479        Self::WordJoiner,
3480        Self::H2,
3481        Self::H3,
3482        Self::JL,
3483        Self::JT,
3484        Self::JV,
3485        Self::CloseParenthesis,
3486        Self::ConditionalJapaneseStarter,
3487        Self::HebrewLetter,
3488        Self::RegionalIndicator,
3489        Self::EBase,
3490        Self::EModifier,
3491        Self::ZWJ,
3492        Self::Aksara,
3493        Self::AksaraPrebase,
3494        Self::AksaraStart,
3495        Self::ViramaFinal,
3496        Self::Virama,
3497        Self::UnambiguousHyphen,
3498    ];
3499
3500    #[cfg(feature = "datagen")]
3501    #[doc(hidden)]
3502    pub fn names() -> impl Iterator<Item = (&'static str, Self)> {
3503        [
3504            ("XX", Self::Unknown),
3505            ("AI", Self::Ambiguous),
3506            ("AL", Self::Alphabetic),
3507            ("B2", Self::BreakBoth),
3508            ("BA", Self::BreakAfter),
3509            ("BB", Self::BreakBefore),
3510            ("BK", Self::MandatoryBreak),
3511            ("CB", Self::ContingentBreak),
3512            ("CL", Self::ClosePunctuation),
3513            ("CM", Self::CombiningMark),
3514            ("CR", Self::CarriageReturn),
3515            ("EX", Self::Exclamation),
3516            ("GL", Self::Glue),
3517            ("HY", Self::Hyphen),
3518            ("ID", Self::Ideographic),
3519            ("IN", Self::Inseparable),
3520            ("IS", Self::InfixNumeric),
3521            ("LF", Self::LineFeed),
3522            ("NS", Self::Nonstarter),
3523            ("NU", Self::Numeric),
3524            ("OP", Self::OpenPunctuation),
3525            ("PO", Self::PostfixNumeric),
3526            ("PR", Self::PrefixNumeric),
3527            ("QU", Self::Quotation),
3528            ("SA", Self::ComplexContext),
3529            ("SG", Self::Surrogate),
3530            ("SP", Self::Space),
3531            ("SY", Self::BreakSymbols),
3532            ("ZW", Self::ZWSpace),
3533            ("NL", Self::NextLine),
3534            ("WJ", Self::WordJoiner),
3535            ("H2", Self::H2),
3536            ("H3", Self::H3),
3537            ("JL", Self::JL),
3538            ("JT", Self::JT),
3539            ("JV", Self::JV),
3540            ("CP", Self::CloseParenthesis),
3541            ("CJ", Self::ConditionalJapaneseStarter),
3542            ("HL", Self::HebrewLetter),
3543            ("RI", Self::RegionalIndicator),
3544            ("EB", Self::EBase),
3545            ("EM", Self::EModifier),
3546            ("ZWJ", Self::ZWJ),
3547            ("AK", Self::Aksara),
3548            ("AP", Self::AksaraPrebase),
3549            ("AS", Self::AksaraStart),
3550            ("VF", Self::ViramaFinal),
3551            ("VI", Self::Virama),
3552            ("HH", Self::UnambiguousHyphen),
3553        ].into_iter()
3554    }
3555}
3556
3557impl NumericType {
3558    pub const None: Self = Self(0);
3559    pub const Decimal: Self = Self(1);
3560    pub const De: Self = Self::Decimal;
3561    pub const Digit: Self = Self(2);
3562    pub const Di: Self = Self::Digit;
3563    pub const Numeric: Self = Self(3);
3564    pub const Nu: Self = Self::Numeric;
3565}
3566
3567#[cfg(feature = "datagen")]
3568impl databake::Bake for NumericType {
3569    fn bake(&self, env: &databake::CrateEnv) -> databake::TokenStream {
3570        env.insert("icu_properties");
3571        match *self {
3572            Self::None => databake::quote!(icu_properties::props::NumericType::None),
3573            Self::Decimal => databake::quote!(icu_properties::props::NumericType::Decimal),
3574            Self::Digit => databake::quote!(icu_properties::props::NumericType::Digit),
3575            Self::Numeric => databake::quote!(icu_properties::props::NumericType::Numeric),
3576            Self(v) => databake::quote!(icu_properties::props::NumericType(#v)),
3577        }
3578    }
3579}
3580
3581
3582impl From<NumericType> for u16  {
3583    fn from(other: NumericType) -> Self {
3584        other.0 as u16
3585    }
3586}
3587
3588impl NumericType {
3589    /// Deprecated
3590    #[deprecated]
3591    pub const ALL_VALUES: &'static [Self] = &[
3592        Self::None,
3593        Self::Decimal,
3594        Self::Digit,
3595        Self::Numeric,
3596    ];
3597
3598    #[cfg(feature = "datagen")]
3599    #[doc(hidden)]
3600    pub fn names() -> impl Iterator<Item = (&'static str, Self)> {
3601        [
3602            ("None", Self::None),
3603            ("De", Self::Decimal),
3604            ("Di", Self::Digit),
3605            ("Nu", Self::Numeric),
3606        ].into_iter()
3607    }
3608}
3609
3610impl Script {
3611    pub const Common: Self = Self(0);
3612    pub const Zyyy: Self = Self::Common;
3613    pub const Inherited: Self = Self(1);
3614    pub const Zinh: Self = Self::Inherited;
3615    pub const Qaai: Self = Self::Inherited;
3616    pub const Arabic: Self = Self(2);
3617    pub const Arab: Self = Self::Arabic;
3618    pub const Armenian: Self = Self(3);
3619    pub const Armn: Self = Self::Armenian;
3620    pub const Bengali: Self = Self(4);
3621    pub const Beng: Self = Self::Bengali;
3622    pub const Bopomofo: Self = Self(5);
3623    pub const Bopo: Self = Self::Bopomofo;
3624    pub const Cherokee: Self = Self(6);
3625    pub const Cher: Self = Self::Cherokee;
3626    pub const Coptic: Self = Self(7);
3627    pub const Copt: Self = Self::Coptic;
3628    pub const Qaac: Self = Self::Coptic;
3629    pub const Cyrillic: Self = Self(8);
3630    pub const Cyrl: Self = Self::Cyrillic;
3631    pub const Deseret: Self = Self(9);
3632    pub const Dsrt: Self = Self::Deseret;
3633    pub const Devanagari: Self = Self(10);
3634    pub const Deva: Self = Self::Devanagari;
3635    pub const Ethiopic: Self = Self(11);
3636    pub const Ethi: Self = Self::Ethiopic;
3637    pub const Georgian: Self = Self(12);
3638    pub const Geor: Self = Self::Georgian;
3639    pub const Gothic: Self = Self(13);
3640    pub const Goth: Self = Self::Gothic;
3641    pub const Greek: Self = Self(14);
3642    pub const Grek: Self = Self::Greek;
3643    pub const Gujarati: Self = Self(15);
3644    pub const Gujr: Self = Self::Gujarati;
3645    pub const Gurmukhi: Self = Self(16);
3646    pub const Guru: Self = Self::Gurmukhi;
3647    pub const Han: Self = Self(17);
3648    pub const Hani: Self = Self::Han;
3649    pub const Hangul: Self = Self(18);
3650    pub const Hang: Self = Self::Hangul;
3651    pub const Hebrew: Self = Self(19);
3652    pub const Hebr: Self = Self::Hebrew;
3653    pub const Hiragana: Self = Self(20);
3654    pub const Hira: Self = Self::Hiragana;
3655    pub const Kannada: Self = Self(21);
3656    pub const Knda: Self = Self::Kannada;
3657    pub const Katakana: Self = Self(22);
3658    pub const Kana: Self = Self::Katakana;
3659    pub const Khmer: Self = Self(23);
3660    pub const Khmr: Self = Self::Khmer;
3661    pub const Lao: Self = Self(24);
3662    pub const Laoo: Self = Self::Lao;
3663    pub const Latin: Self = Self(25);
3664    pub const Latn: Self = Self::Latin;
3665    pub const Malayalam: Self = Self(26);
3666    pub const Mlym: Self = Self::Malayalam;
3667    pub const Mongolian: Self = Self(27);
3668    pub const Mong: Self = Self::Mongolian;
3669    pub const Myanmar: Self = Self(28);
3670    pub const Mymr: Self = Self::Myanmar;
3671    pub const Ogham: Self = Self(29);
3672    pub const Ogam: Self = Self::Ogham;
3673    pub const OldItalic: Self = Self(30);
3674    pub const Ital: Self = Self::OldItalic;
3675    pub const Oriya: Self = Self(31);
3676    pub const Orya: Self = Self::Oriya;
3677    pub const Runic: Self = Self(32);
3678    pub const Runr: Self = Self::Runic;
3679    pub const Sinhala: Self = Self(33);
3680    pub const Sinh: Self = Self::Sinhala;
3681    pub const Syriac: Self = Self(34);
3682    pub const Syrc: Self = Self::Syriac;
3683    pub const Tamil: Self = Self(35);
3684    pub const Taml: Self = Self::Tamil;
3685    pub const Telugu: Self = Self(36);
3686    pub const Telu: Self = Self::Telugu;
3687    pub const Thaana: Self = Self(37);
3688    pub const Thaa: Self = Self::Thaana;
3689    pub const Thai: Self = Self(38);
3690    pub const Tibetan: Self = Self(39);
3691    pub const Tibt: Self = Self::Tibetan;
3692    pub const CanadianAboriginal: Self = Self(40);
3693    pub const Cans: Self = Self::CanadianAboriginal;
3694    pub const Yi: Self = Self(41);
3695    pub const Yiii: Self = Self::Yi;
3696    pub const Tagalog: Self = Self(42);
3697    pub const Tglg: Self = Self::Tagalog;
3698    pub const Hanunoo: Self = Self(43);
3699    pub const Hano: Self = Self::Hanunoo;
3700    pub const Buhid: Self = Self(44);
3701    pub const Buhd: Self = Self::Buhid;
3702    pub const Tagbanwa: Self = Self(45);
3703    pub const Tagb: Self = Self::Tagbanwa;
3704    pub const Braille: Self = Self(46);
3705    pub const Brai: Self = Self::Braille;
3706    pub const Cypriot: Self = Self(47);
3707    pub const Cprt: Self = Self::Cypriot;
3708    pub const Limbu: Self = Self(48);
3709    pub const Limb: Self = Self::Limbu;
3710    pub const LinearB: Self = Self(49);
3711    pub const Linb: Self = Self::LinearB;
3712    pub const Osmanya: Self = Self(50);
3713    pub const Osma: Self = Self::Osmanya;
3714    pub const Shavian: Self = Self(51);
3715    pub const Shaw: Self = Self::Shavian;
3716    pub const TaiLe: Self = Self(52);
3717    pub const Tale: Self = Self::TaiLe;
3718    pub const Ugaritic: Self = Self(53);
3719    pub const Ugar: Self = Self::Ugaritic;
3720    pub const KatakanaOrHiragana: Self = Self(54);
3721    pub const Hrkt: Self = Self::KatakanaOrHiragana;
3722    pub const Buginese: Self = Self(55);
3723    pub const Bugi: Self = Self::Buginese;
3724    pub const Glagolitic: Self = Self(56);
3725    pub const Glag: Self = Self::Glagolitic;
3726    pub const Kharoshthi: Self = Self(57);
3727    pub const Khar: Self = Self::Kharoshthi;
3728    pub const SylotiNagri: Self = Self(58);
3729    pub const Sylo: Self = Self::SylotiNagri;
3730    pub const NewTaiLue: Self = Self(59);
3731    pub const Talu: Self = Self::NewTaiLue;
3732    pub const Tifinagh: Self = Self(60);
3733    pub const Tfng: Self = Self::Tifinagh;
3734    pub const OldPersian: Self = Self(61);
3735    pub const Xpeo: Self = Self::OldPersian;
3736    pub const Balinese: Self = Self(62);
3737    pub const Bali: Self = Self::Balinese;
3738    pub const Batak: Self = Self(63);
3739    pub const Batk: Self = Self::Batak;
3740    /// ISO 15924
3741    pub const Blissymbols: Self = Self(64);
3742    /// ISO 15924
3743    pub const Blis: Self = Self::Blissymbols;
3744    pub const Brahmi: Self = Self(65);
3745    pub const Brah: Self = Self::Brahmi;
3746    pub const Cham: Self = Self(66);
3747    /// ISO 15924
3748    pub const Cirth: Self = Self(67);
3749    /// ISO 15924
3750    pub const Cirt: Self = Self::Cirth;
3751    /// ISO 15924
3752    pub const OldChurchSlavonicCyrillic: Self = Self(68);
3753    /// ISO 15924
3754    pub const Cyrs: Self = Self::OldChurchSlavonicCyrillic;
3755    /// ISO 15924
3756    pub const DemoticEgyptian: Self = Self(69);
3757    /// ISO 15924
3758    pub const Egyd: Self = Self::DemoticEgyptian;
3759    /// ISO 15924
3760    pub const HieraticEgyptian: Self = Self(70);
3761    /// ISO 15924
3762    pub const Egyh: Self = Self::HieraticEgyptian;
3763    pub const EgyptianHieroglyphs: Self = Self(71);
3764    pub const Egyp: Self = Self::EgyptianHieroglyphs;
3765    /// ISO 15924
3766    pub const Khutsuri: Self = Self(72);
3767    /// ISO 15924
3768    pub const Geok: Self = Self::Khutsuri;
3769    /// ISO 15924
3770    pub const SimplifiedHan: Self = Self(73);
3771    /// ISO 15924
3772    pub const Hans: Self = Self::SimplifiedHan;
3773    /// ISO 15924
3774    pub const TraditionalHan: Self = Self(74);
3775    /// ISO 15924
3776    pub const Hant: Self = Self::TraditionalHan;
3777    pub const PahawhHmong: Self = Self(75);
3778    pub const Hmng: Self = Self::PahawhHmong;
3779    pub const OldHungarian: Self = Self(76);
3780    pub const Hung: Self = Self::OldHungarian;
3781    /// ISO 15924
3782    pub const HarappanIndus: Self = Self(77);
3783    /// ISO 15924
3784    pub const Inds: Self = Self::HarappanIndus;
3785    pub const Javanese: Self = Self(78);
3786    pub const Java: Self = Self::Javanese;
3787    pub const KayahLi: Self = Self(79);
3788    pub const Kali: Self = Self::KayahLi;
3789    /// ISO 15924
3790    pub const LatinFraktur: Self = Self(80);
3791    /// ISO 15924
3792    pub const Latf: Self = Self::LatinFraktur;
3793    /// ISO 15924
3794    pub const LatinGaelic: Self = Self(81);
3795    /// ISO 15924
3796    pub const Latg: Self = Self::LatinGaelic;
3797    pub const Lepcha: Self = Self(82);
3798    pub const Lepc: Self = Self::Lepcha;
3799    pub const LinearA: Self = Self(83);
3800    pub const Lina: Self = Self::LinearA;
3801    pub const Mandaic: Self = Self(84);
3802    pub const Mand: Self = Self::Mandaic;
3803    /// ISO 15924
3804    pub const MayanHieroglyphs: Self = Self(85);
3805    /// ISO 15924
3806    pub const Maya: Self = Self::MayanHieroglyphs;
3807    pub const MeroiticHieroglyphs: Self = Self(86);
3808    pub const Mero: Self = Self::MeroiticHieroglyphs;
3809    pub const Nko: Self = Self(87);
3810    pub const Nkoo: Self = Self::Nko;
3811    pub const OldTurkic: Self = Self(88);
3812    pub const Orkh: Self = Self::OldTurkic;
3813    pub const OldPermic: Self = Self(89);
3814    pub const Perm: Self = Self::OldPermic;
3815    pub const PhagsPa: Self = Self(90);
3816    pub const Phag: Self = Self::PhagsPa;
3817    pub const Phoenician: Self = Self(91);
3818    pub const Phnx: Self = Self::Phoenician;
3819    pub const Miao: Self = Self(92);
3820    pub const Plrd: Self = Self::Miao;
3821    /// ISO 15924
3822    pub const Rongorongo: Self = Self(93);
3823    /// ISO 15924
3824    pub const Roro: Self = Self::Rongorongo;
3825    /// ISO 15924
3826    pub const Sarati: Self = Self(94);
3827    /// ISO 15924
3828    pub const Sara: Self = Self::Sarati;
3829    /// ISO 15924
3830    pub const EstrangeloSyriac: Self = Self(95);
3831    /// ISO 15924
3832    pub const Syre: Self = Self::EstrangeloSyriac;
3833    /// ISO 15924
3834    pub const WesternSyriac: Self = Self(96);
3835    /// ISO 15924
3836    pub const Syrj: Self = Self::WesternSyriac;
3837    /// ISO 15924
3838    pub const EasternSyriac: Self = Self(97);
3839    /// ISO 15924
3840    pub const Syrn: Self = Self::EasternSyriac;
3841    /// ISO 15924
3842    pub const Tengwar: Self = Self(98);
3843    /// ISO 15924
3844    pub const Teng: Self = Self::Tengwar;
3845    pub const Vai: Self = Self(99);
3846    pub const Vaii: Self = Self::Vai;
3847    /// ISO 15924
3848    pub const VisibleSpeech: Self = Self(100);
3849    /// ISO 15924
3850    pub const Visp: Self = Self::VisibleSpeech;
3851    pub const Cuneiform: Self = Self(101);
3852    pub const Xsux: Self = Self::Cuneiform;
3853    /// ISO 15924
3854    pub const UnwrittenLanguages: Self = Self(102);
3855    /// ISO 15924
3856    pub const Zxxx: Self = Self::UnwrittenLanguages;
3857    pub const Unknown: Self = Self(103);
3858    pub const Zzzz: Self = Self::Unknown;
3859    pub const Carian: Self = Self(104);
3860    pub const Cari: Self = Self::Carian;
3861    /// ISO 15924
3862    pub const Japanese: Self = Self(105);
3863    /// ISO 15924
3864    pub const Jpan: Self = Self::Japanese;
3865    pub const TaiTham: Self = Self(106);
3866    pub const Lana: Self = Self::TaiTham;
3867    pub const Lycian: Self = Self(107);
3868    pub const Lyci: Self = Self::Lycian;
3869    pub const Lydian: Self = Self(108);
3870    pub const Lydi: Self = Self::Lydian;
3871    pub const OlChiki: Self = Self(109);
3872    pub const Olck: Self = Self::OlChiki;
3873    pub const Rejang: Self = Self(110);
3874    pub const Rjng: Self = Self::Rejang;
3875    pub const Saurashtra: Self = Self(111);
3876    pub const Saur: Self = Self::Saurashtra;
3877    pub const SignWriting: Self = Self(112);
3878    pub const Sgnw: Self = Self::SignWriting;
3879    pub const Sundanese: Self = Self(113);
3880    pub const Sund: Self = Self::Sundanese;
3881    /// ISO 15924
3882    pub const Moon: Self = Self(114);
3883    pub const MeeteiMayek: Self = Self(115);
3884    pub const Mtei: Self = Self::MeeteiMayek;
3885    pub const ImperialAramaic: Self = Self(116);
3886    pub const Armi: Self = Self::ImperialAramaic;
3887    pub const Avestan: Self = Self(117);
3888    pub const Avst: Self = Self::Avestan;
3889    pub const Chakma: Self = Self(118);
3890    pub const Cakm: Self = Self::Chakma;
3891    /// ISO 15924
3892    pub const Korean: Self = Self(119);
3893    /// ISO 15924
3894    pub const Kore: Self = Self::Korean;
3895    pub const Kaithi: Self = Self(120);
3896    pub const Kthi: Self = Self::Kaithi;
3897    pub const Manichaean: Self = Self(121);
3898    pub const Mani: Self = Self::Manichaean;
3899    pub const InscriptionalPahlavi: Self = Self(122);
3900    pub const Phli: Self = Self::InscriptionalPahlavi;
3901    pub const PsalterPahlavi: Self = Self(123);
3902    pub const Phlp: Self = Self::PsalterPahlavi;
3903    /// ISO 15924
3904    pub const BookPahlavi: Self = Self(124);
3905    /// ISO 15924
3906    pub const Phlv: Self = Self::BookPahlavi;
3907    pub const InscriptionalParthian: Self = Self(125);
3908    pub const Prti: Self = Self::InscriptionalParthian;
3909    pub const Samaritan: Self = Self(126);
3910    pub const Samr: Self = Self::Samaritan;
3911    pub const TaiViet: Self = Self(127);
3912    pub const Tavt: Self = Self::TaiViet;
3913    /// ISO 15924
3914    pub const MathematicalNotation: Self = Self(128);
3915    /// ISO 15924
3916    pub const Zmth: Self = Self::MathematicalNotation;
3917    /// ISO 15924
3918    pub const Symbols: Self = Self(129);
3919    /// ISO 15924
3920    pub const Zsym: Self = Self::Symbols;
3921    pub const Bamum: Self = Self(130);
3922    pub const Bamu: Self = Self::Bamum;
3923    pub const Lisu: Self = Self(131);
3924    /// ISO 15924
3925    pub const NakhiGeba: Self = Self(132);
3926    /// ISO 15924
3927    pub const Nkgb: Self = Self::NakhiGeba;
3928    pub const OldSouthArabian: Self = Self(133);
3929    pub const Sarb: Self = Self::OldSouthArabian;
3930    pub const BassaVah: Self = Self(134);
3931    pub const Bass: Self = Self::BassaVah;
3932    pub const Duployan: Self = Self(135);
3933    pub const Dupl: Self = Self::Duployan;
3934    pub const Elbasan: Self = Self(136);
3935    pub const Elba: Self = Self::Elbasan;
3936    pub const Grantha: Self = Self(137);
3937    pub const Gran: Self = Self::Grantha;
3938    /// ISO 15924
3939    pub const Kpelle: Self = Self(138);
3940    /// ISO 15924
3941    pub const Kpel: Self = Self::Kpelle;
3942    /// ISO 15924
3943    pub const Loma: Self = Self(139);
3944    pub const MendeKikakui: Self = Self(140);
3945    pub const Mend: Self = Self::MendeKikakui;
3946    pub const MeroiticCursive: Self = Self(141);
3947    pub const Merc: Self = Self::MeroiticCursive;
3948    pub const OldNorthArabian: Self = Self(142);
3949    pub const Narb: Self = Self::OldNorthArabian;
3950    pub const Nabataean: Self = Self(143);
3951    pub const Nbat: Self = Self::Nabataean;
3952    pub const Palmyrene: Self = Self(144);
3953    pub const Palm: Self = Self::Palmyrene;
3954    pub const Khudawadi: Self = Self(145);
3955    pub const Sind: Self = Self::Khudawadi;
3956    pub const WarangCiti: Self = Self(146);
3957    pub const Wara: Self = Self::WarangCiti;
3958    /// ISO 15924
3959    pub const Afaka: Self = Self(147);
3960    /// ISO 15924
3961    pub const Afak: Self = Self::Afaka;
3962    pub const Jurchen: Self = Self(148);
3963    pub const Jurc: Self = Self::Jurchen;
3964    pub const Mro: Self = Self(149);
3965    pub const Mroo: Self = Self::Mro;
3966    pub const Nushu: Self = Self(150);
3967    pub const Nshu: Self = Self::Nushu;
3968    pub const Sharada: Self = Self(151);
3969    pub const Shrd: Self = Self::Sharada;
3970    pub const SoraSompeng: Self = Self(152);
3971    pub const Sora: Self = Self::SoraSompeng;
3972    pub const Takri: Self = Self(153);
3973    pub const Takr: Self = Self::Takri;
3974    pub const Tangut: Self = Self(154);
3975    pub const Tang: Self = Self::Tangut;
3976    /// ISO 15924
3977    pub const Woleai: Self = Self(155);
3978    /// ISO 15924
3979    pub const Wole: Self = Self::Woleai;
3980    pub const AnatolianHieroglyphs: Self = Self(156);
3981    pub const Hluw: Self = Self::AnatolianHieroglyphs;
3982    pub const Khojki: Self = Self(157);
3983    pub const Khoj: Self = Self::Khojki;
3984    pub const Tirhuta: Self = Self(158);
3985    pub const Tirh: Self = Self::Tirhuta;
3986    pub const CaucasianAlbanian: Self = Self(159);
3987    pub const Aghb: Self = Self::CaucasianAlbanian;
3988    pub const Mahajani: Self = Self(160);
3989    pub const Mahj: Self = Self::Mahajani;
3990    pub const Ahom: Self = Self(161);
3991    pub const Hatran: Self = Self(162);
3992    pub const Hatr: Self = Self::Hatran;
3993    pub const Modi: Self = Self(163);
3994    pub const Multani: Self = Self(164);
3995    pub const Mult: Self = Self::Multani;
3996    pub const PauCinHau: Self = Self(165);
3997    pub const Pauc: Self = Self::PauCinHau;
3998    pub const Siddham: Self = Self(166);
3999    pub const Sidd: Self = Self::Siddham;
4000    pub const Adlam: Self = Self(167);
4001    pub const Adlm: Self = Self::Adlam;
4002    pub const Bhaiksuki: Self = Self(168);
4003    pub const Bhks: Self = Self::Bhaiksuki;
4004    pub const Marchen: Self = Self(169);
4005    pub const Marc: Self = Self::Marchen;
4006    pub const Newa: Self = Self(170);
4007    pub const Osage: Self = Self(171);
4008    pub const Osge: Self = Self::Osage;
4009    /// ISO 15924
4010    pub const HanWithBopomofo: Self = Self(172);
4011    /// ISO 15924
4012    pub const Hanb: Self = Self::HanWithBopomofo;
4013    /// ISO 15924
4014    pub const Jamo: Self = Self(173);
4015    /// ISO 15924
4016    pub const SymbolsEmoji: Self = Self(174);
4017    /// ISO 15924
4018    pub const Zsye: Self = Self::SymbolsEmoji;
4019    pub const MasaramGondi: Self = Self(175);
4020    pub const Gonm: Self = Self::MasaramGondi;
4021    pub const Soyombo: Self = Self(176);
4022    pub const Soyo: Self = Self::Soyombo;
4023    pub const ZanabazarSquare: Self = Self(177);
4024    pub const Zanb: Self = Self::ZanabazarSquare;
4025    pub const Dogra: Self = Self(178);
4026    pub const Dogr: Self = Self::Dogra;
4027    pub const GunjalaGondi: Self = Self(179);
4028    pub const Gong: Self = Self::GunjalaGondi;
4029    pub const Makasar: Self = Self(180);
4030    pub const Maka: Self = Self::Makasar;
4031    pub const Medefaidrin: Self = Self(181);
4032    pub const Medf: Self = Self::Medefaidrin;
4033    pub const HanifiRohingya: Self = Self(182);
4034    pub const Rohg: Self = Self::HanifiRohingya;
4035    pub const Sogdian: Self = Self(183);
4036    pub const Sogd: Self = Self::Sogdian;
4037    pub const OldSogdian: Self = Self(184);
4038    pub const Sogo: Self = Self::OldSogdian;
4039    pub const Elymaic: Self = Self(185);
4040    pub const Elym: Self = Self::Elymaic;
4041    pub const NyiakengPuachueHmong: Self = Self(186);
4042    pub const Hmnp: Self = Self::NyiakengPuachueHmong;
4043    pub const Nandinagari: Self = Self(187);
4044    pub const Nand: Self = Self::Nandinagari;
4045    pub const Wancho: Self = Self(188);
4046    pub const Wcho: Self = Self::Wancho;
4047    pub const Chorasmian: Self = Self(189);
4048    pub const Chrs: Self = Self::Chorasmian;
4049    pub const DivesAkuru: Self = Self(190);
4050    pub const Diak: Self = Self::DivesAkuru;
4051    pub const KhitanSmallScript: Self = Self(191);
4052    pub const Kits: Self = Self::KhitanSmallScript;
4053    pub const Yezidi: Self = Self(192);
4054    pub const Yezi: Self = Self::Yezidi;
4055    pub const CyproMinoan: Self = Self(193);
4056    pub const Cpmn: Self = Self::CyproMinoan;
4057    pub const OldUyghur: Self = Self(194);
4058    pub const Ougr: Self = Self::OldUyghur;
4059    pub const Tangsa: Self = Self(195);
4060    pub const Tnsa: Self = Self::Tangsa;
4061    pub const Toto: Self = Self(196);
4062    pub const Vithkuqi: Self = Self(197);
4063    pub const Vith: Self = Self::Vithkuqi;
4064    pub const Kawi: Self = Self(198);
4065    pub const NagMundari: Self = Self(199);
4066    pub const Nagm: Self = Self::NagMundari;
4067    /// ISO 15924
4068    pub const ArabicNastaliq: Self = Self(200);
4069    /// ISO 15924
4070    pub const Aran: Self = Self::ArabicNastaliq;
4071    pub const Garay: Self = Self(201);
4072    pub const Gara: Self = Self::Garay;
4073    pub const GurungKhema: Self = Self(202);
4074    pub const Gukh: Self = Self::GurungKhema;
4075    pub const KiratRai: Self = Self(203);
4076    pub const Krai: Self = Self::KiratRai;
4077    pub const OlOnal: Self = Self(204);
4078    pub const Onao: Self = Self::OlOnal;
4079    pub const Sunuwar: Self = Self(205);
4080    pub const Sunu: Self = Self::Sunuwar;
4081    pub const Todhri: Self = Self(206);
4082    pub const Todr: Self = Self::Todhri;
4083    pub const TuluTigalari: Self = Self(207);
4084    pub const Tutg: Self = Self::TuluTigalari;
4085    pub const BeriaErfe: Self = Self(208);
4086    pub const Berf: Self = Self::BeriaErfe;
4087    pub const Sidetic: Self = Self(209);
4088    pub const Sidt: Self = Self::Sidetic;
4089    pub const TaiYo: Self = Self(210);
4090    pub const Tayo: Self = Self::TaiYo;
4091    pub const TolongSiki: Self = Self(211);
4092    pub const Tols: Self = Self::TolongSiki;
4093    /// ISO 15924
4094    pub const TraditionalHanWithLatin: Self = Self(212);
4095    /// ISO 15924
4096    pub const Hntl: Self = Self::TraditionalHanWithLatin;
4097    pub const ProtoCuneiform: Self = Self(213);
4098    pub const Pcun: Self = Self::ProtoCuneiform;
4099    pub const Seal: Self = Self(214);
4100}
4101
4102#[cfg(feature = "datagen")]
4103impl databake::Bake for Script {
4104    fn bake(&self, env: &databake::CrateEnv) -> databake::TokenStream {
4105        env.insert("icu_properties");
4106        match *self {
4107            Self::Common => databake::quote!(icu_properties::props::Script::Common),
4108            Self::Inherited => databake::quote!(icu_properties::props::Script::Inherited),
4109            Self::Arabic => databake::quote!(icu_properties::props::Script::Arabic),
4110            Self::Armenian => databake::quote!(icu_properties::props::Script::Armenian),
4111            Self::Bengali => databake::quote!(icu_properties::props::Script::Bengali),
4112            Self::Bopomofo => databake::quote!(icu_properties::props::Script::Bopomofo),
4113            Self::Cherokee => databake::quote!(icu_properties::props::Script::Cherokee),
4114            Self::Coptic => databake::quote!(icu_properties::props::Script::Coptic),
4115            Self::Cyrillic => databake::quote!(icu_properties::props::Script::Cyrillic),
4116            Self::Deseret => databake::quote!(icu_properties::props::Script::Deseret),
4117            Self::Devanagari => databake::quote!(icu_properties::props::Script::Devanagari),
4118            Self::Ethiopic => databake::quote!(icu_properties::props::Script::Ethiopic),
4119            Self::Georgian => databake::quote!(icu_properties::props::Script::Georgian),
4120            Self::Gothic => databake::quote!(icu_properties::props::Script::Gothic),
4121            Self::Greek => databake::quote!(icu_properties::props::Script::Greek),
4122            Self::Gujarati => databake::quote!(icu_properties::props::Script::Gujarati),
4123            Self::Gurmukhi => databake::quote!(icu_properties::props::Script::Gurmukhi),
4124            Self::Han => databake::quote!(icu_properties::props::Script::Han),
4125            Self::Hangul => databake::quote!(icu_properties::props::Script::Hangul),
4126            Self::Hebrew => databake::quote!(icu_properties::props::Script::Hebrew),
4127            Self::Hiragana => databake::quote!(icu_properties::props::Script::Hiragana),
4128            Self::Kannada => databake::quote!(icu_properties::props::Script::Kannada),
4129            Self::Katakana => databake::quote!(icu_properties::props::Script::Katakana),
4130            Self::Khmer => databake::quote!(icu_properties::props::Script::Khmer),
4131            Self::Lao => databake::quote!(icu_properties::props::Script::Lao),
4132            Self::Latin => databake::quote!(icu_properties::props::Script::Latin),
4133            Self::Malayalam => databake::quote!(icu_properties::props::Script::Malayalam),
4134            Self::Mongolian => databake::quote!(icu_properties::props::Script::Mongolian),
4135            Self::Myanmar => databake::quote!(icu_properties::props::Script::Myanmar),
4136            Self::Ogham => databake::quote!(icu_properties::props::Script::Ogham),
4137            Self::OldItalic => databake::quote!(icu_properties::props::Script::OldItalic),
4138            Self::Oriya => databake::quote!(icu_properties::props::Script::Oriya),
4139            Self::Runic => databake::quote!(icu_properties::props::Script::Runic),
4140            Self::Sinhala => databake::quote!(icu_properties::props::Script::Sinhala),
4141            Self::Syriac => databake::quote!(icu_properties::props::Script::Syriac),
4142            Self::Tamil => databake::quote!(icu_properties::props::Script::Tamil),
4143            Self::Telugu => databake::quote!(icu_properties::props::Script::Telugu),
4144            Self::Thaana => databake::quote!(icu_properties::props::Script::Thaana),
4145            Self::Thai => databake::quote!(icu_properties::props::Script::Thai),
4146            Self::Tibetan => databake::quote!(icu_properties::props::Script::Tibetan),
4147            Self::CanadianAboriginal => databake::quote!(icu_properties::props::Script::CanadianAboriginal),
4148            Self::Yi => databake::quote!(icu_properties::props::Script::Yi),
4149            Self::Tagalog => databake::quote!(icu_properties::props::Script::Tagalog),
4150            Self::Hanunoo => databake::quote!(icu_properties::props::Script::Hanunoo),
4151            Self::Buhid => databake::quote!(icu_properties::props::Script::Buhid),
4152            Self::Tagbanwa => databake::quote!(icu_properties::props::Script::Tagbanwa),
4153            Self::Braille => databake::quote!(icu_properties::props::Script::Braille),
4154            Self::Cypriot => databake::quote!(icu_properties::props::Script::Cypriot),
4155            Self::Limbu => databake::quote!(icu_properties::props::Script::Limbu),
4156            Self::LinearB => databake::quote!(icu_properties::props::Script::LinearB),
4157            Self::Osmanya => databake::quote!(icu_properties::props::Script::Osmanya),
4158            Self::Shavian => databake::quote!(icu_properties::props::Script::Shavian),
4159            Self::TaiLe => databake::quote!(icu_properties::props::Script::TaiLe),
4160            Self::Ugaritic => databake::quote!(icu_properties::props::Script::Ugaritic),
4161            Self::KatakanaOrHiragana => databake::quote!(icu_properties::props::Script::KatakanaOrHiragana),
4162            Self::Buginese => databake::quote!(icu_properties::props::Script::Buginese),
4163            Self::Glagolitic => databake::quote!(icu_properties::props::Script::Glagolitic),
4164            Self::Kharoshthi => databake::quote!(icu_properties::props::Script::Kharoshthi),
4165            Self::SylotiNagri => databake::quote!(icu_properties::props::Script::SylotiNagri),
4166            Self::NewTaiLue => databake::quote!(icu_properties::props::Script::NewTaiLue),
4167            Self::Tifinagh => databake::quote!(icu_properties::props::Script::Tifinagh),
4168            Self::OldPersian => databake::quote!(icu_properties::props::Script::OldPersian),
4169            Self::Balinese => databake::quote!(icu_properties::props::Script::Balinese),
4170            Self::Batak => databake::quote!(icu_properties::props::Script::Batak),
4171            Self::Blissymbols => databake::quote!(icu_properties::props::Script::Blissymbols),
4172            Self::Brahmi => databake::quote!(icu_properties::props::Script::Brahmi),
4173            Self::Cham => databake::quote!(icu_properties::props::Script::Cham),
4174            Self::Cirth => databake::quote!(icu_properties::props::Script::Cirth),
4175            Self::OldChurchSlavonicCyrillic => databake::quote!(icu_properties::props::Script::OldChurchSlavonicCyrillic),
4176            Self::DemoticEgyptian => databake::quote!(icu_properties::props::Script::DemoticEgyptian),
4177            Self::HieraticEgyptian => databake::quote!(icu_properties::props::Script::HieraticEgyptian),
4178            Self::EgyptianHieroglyphs => databake::quote!(icu_properties::props::Script::EgyptianHieroglyphs),
4179            Self::Khutsuri => databake::quote!(icu_properties::props::Script::Khutsuri),
4180            Self::SimplifiedHan => databake::quote!(icu_properties::props::Script::SimplifiedHan),
4181            Self::TraditionalHan => databake::quote!(icu_properties::props::Script::TraditionalHan),
4182            Self::PahawhHmong => databake::quote!(icu_properties::props::Script::PahawhHmong),
4183            Self::OldHungarian => databake::quote!(icu_properties::props::Script::OldHungarian),
4184            Self::HarappanIndus => databake::quote!(icu_properties::props::Script::HarappanIndus),
4185            Self::Javanese => databake::quote!(icu_properties::props::Script::Javanese),
4186            Self::KayahLi => databake::quote!(icu_properties::props::Script::KayahLi),
4187            Self::LatinFraktur => databake::quote!(icu_properties::props::Script::LatinFraktur),
4188            Self::LatinGaelic => databake::quote!(icu_properties::props::Script::LatinGaelic),
4189            Self::Lepcha => databake::quote!(icu_properties::props::Script::Lepcha),
4190            Self::LinearA => databake::quote!(icu_properties::props::Script::LinearA),
4191            Self::Mandaic => databake::quote!(icu_properties::props::Script::Mandaic),
4192            Self::MayanHieroglyphs => databake::quote!(icu_properties::props::Script::MayanHieroglyphs),
4193            Self::MeroiticHieroglyphs => databake::quote!(icu_properties::props::Script::MeroiticHieroglyphs),
4194            Self::Nko => databake::quote!(icu_properties::props::Script::Nko),
4195            Self::OldTurkic => databake::quote!(icu_properties::props::Script::OldTurkic),
4196            Self::OldPermic => databake::quote!(icu_properties::props::Script::OldPermic),
4197            Self::PhagsPa => databake::quote!(icu_properties::props::Script::PhagsPa),
4198            Self::Phoenician => databake::quote!(icu_properties::props::Script::Phoenician),
4199            Self::Miao => databake::quote!(icu_properties::props::Script::Miao),
4200            Self::Rongorongo => databake::quote!(icu_properties::props::Script::Rongorongo),
4201            Self::Sarati => databake::quote!(icu_properties::props::Script::Sarati),
4202            Self::EstrangeloSyriac => databake::quote!(icu_properties::props::Script::EstrangeloSyriac),
4203            Self::WesternSyriac => databake::quote!(icu_properties::props::Script::WesternSyriac),
4204            Self::EasternSyriac => databake::quote!(icu_properties::props::Script::EasternSyriac),
4205            Self::Tengwar => databake::quote!(icu_properties::props::Script::Tengwar),
4206            Self::Vai => databake::quote!(icu_properties::props::Script::Vai),
4207            Self::VisibleSpeech => databake::quote!(icu_properties::props::Script::VisibleSpeech),
4208            Self::Cuneiform => databake::quote!(icu_properties::props::Script::Cuneiform),
4209            Self::UnwrittenLanguages => databake::quote!(icu_properties::props::Script::UnwrittenLanguages),
4210            Self::Unknown => databake::quote!(icu_properties::props::Script::Unknown),
4211            Self::Carian => databake::quote!(icu_properties::props::Script::Carian),
4212            Self::Japanese => databake::quote!(icu_properties::props::Script::Japanese),
4213            Self::TaiTham => databake::quote!(icu_properties::props::Script::TaiTham),
4214            Self::Lycian => databake::quote!(icu_properties::props::Script::Lycian),
4215            Self::Lydian => databake::quote!(icu_properties::props::Script::Lydian),
4216            Self::OlChiki => databake::quote!(icu_properties::props::Script::OlChiki),
4217            Self::Rejang => databake::quote!(icu_properties::props::Script::Rejang),
4218            Self::Saurashtra => databake::quote!(icu_properties::props::Script::Saurashtra),
4219            Self::SignWriting => databake::quote!(icu_properties::props::Script::SignWriting),
4220            Self::Sundanese => databake::quote!(icu_properties::props::Script::Sundanese),
4221            Self::Moon => databake::quote!(icu_properties::props::Script::Moon),
4222            Self::MeeteiMayek => databake::quote!(icu_properties::props::Script::MeeteiMayek),
4223            Self::ImperialAramaic => databake::quote!(icu_properties::props::Script::ImperialAramaic),
4224            Self::Avestan => databake::quote!(icu_properties::props::Script::Avestan),
4225            Self::Chakma => databake::quote!(icu_properties::props::Script::Chakma),
4226            Self::Korean => databake::quote!(icu_properties::props::Script::Korean),
4227            Self::Kaithi => databake::quote!(icu_properties::props::Script::Kaithi),
4228            Self::Manichaean => databake::quote!(icu_properties::props::Script::Manichaean),
4229            Self::InscriptionalPahlavi => databake::quote!(icu_properties::props::Script::InscriptionalPahlavi),
4230            Self::PsalterPahlavi => databake::quote!(icu_properties::props::Script::PsalterPahlavi),
4231            Self::BookPahlavi => databake::quote!(icu_properties::props::Script::BookPahlavi),
4232            Self::InscriptionalParthian => databake::quote!(icu_properties::props::Script::InscriptionalParthian),
4233            Self::Samaritan => databake::quote!(icu_properties::props::Script::Samaritan),
4234            Self::TaiViet => databake::quote!(icu_properties::props::Script::TaiViet),
4235            Self::MathematicalNotation => databake::quote!(icu_properties::props::Script::MathematicalNotation),
4236            Self::Symbols => databake::quote!(icu_properties::props::Script::Symbols),
4237            Self::Bamum => databake::quote!(icu_properties::props::Script::Bamum),
4238            Self::Lisu => databake::quote!(icu_properties::props::Script::Lisu),
4239            Self::NakhiGeba => databake::quote!(icu_properties::props::Script::NakhiGeba),
4240            Self::OldSouthArabian => databake::quote!(icu_properties::props::Script::OldSouthArabian),
4241            Self::BassaVah => databake::quote!(icu_properties::props::Script::BassaVah),
4242            Self::Duployan => databake::quote!(icu_properties::props::Script::Duployan),
4243            Self::Elbasan => databake::quote!(icu_properties::props::Script::Elbasan),
4244            Self::Grantha => databake::quote!(icu_properties::props::Script::Grantha),
4245            Self::Kpelle => databake::quote!(icu_properties::props::Script::Kpelle),
4246            Self::Loma => databake::quote!(icu_properties::props::Script::Loma),
4247            Self::MendeKikakui => databake::quote!(icu_properties::props::Script::MendeKikakui),
4248            Self::MeroiticCursive => databake::quote!(icu_properties::props::Script::MeroiticCursive),
4249            Self::OldNorthArabian => databake::quote!(icu_properties::props::Script::OldNorthArabian),
4250            Self::Nabataean => databake::quote!(icu_properties::props::Script::Nabataean),
4251            Self::Palmyrene => databake::quote!(icu_properties::props::Script::Palmyrene),
4252            Self::Khudawadi => databake::quote!(icu_properties::props::Script::Khudawadi),
4253            Self::WarangCiti => databake::quote!(icu_properties::props::Script::WarangCiti),
4254            Self::Afaka => databake::quote!(icu_properties::props::Script::Afaka),
4255            Self::Jurchen => databake::quote!(icu_properties::props::Script::Jurchen),
4256            Self::Mro => databake::quote!(icu_properties::props::Script::Mro),
4257            Self::Nushu => databake::quote!(icu_properties::props::Script::Nushu),
4258            Self::Sharada => databake::quote!(icu_properties::props::Script::Sharada),
4259            Self::SoraSompeng => databake::quote!(icu_properties::props::Script::SoraSompeng),
4260            Self::Takri => databake::quote!(icu_properties::props::Script::Takri),
4261            Self::Tangut => databake::quote!(icu_properties::props::Script::Tangut),
4262            Self::Woleai => databake::quote!(icu_properties::props::Script::Woleai),
4263            Self::AnatolianHieroglyphs => databake::quote!(icu_properties::props::Script::AnatolianHieroglyphs),
4264            Self::Khojki => databake::quote!(icu_properties::props::Script::Khojki),
4265            Self::Tirhuta => databake::quote!(icu_properties::props::Script::Tirhuta),
4266            Self::CaucasianAlbanian => databake::quote!(icu_properties::props::Script::CaucasianAlbanian),
4267            Self::Mahajani => databake::quote!(icu_properties::props::Script::Mahajani),
4268            Self::Ahom => databake::quote!(icu_properties::props::Script::Ahom),
4269            Self::Hatran => databake::quote!(icu_properties::props::Script::Hatran),
4270            Self::Modi => databake::quote!(icu_properties::props::Script::Modi),
4271            Self::Multani => databake::quote!(icu_properties::props::Script::Multani),
4272            Self::PauCinHau => databake::quote!(icu_properties::props::Script::PauCinHau),
4273            Self::Siddham => databake::quote!(icu_properties::props::Script::Siddham),
4274            Self::Adlam => databake::quote!(icu_properties::props::Script::Adlam),
4275            Self::Bhaiksuki => databake::quote!(icu_properties::props::Script::Bhaiksuki),
4276            Self::Marchen => databake::quote!(icu_properties::props::Script::Marchen),
4277            Self::Newa => databake::quote!(icu_properties::props::Script::Newa),
4278            Self::Osage => databake::quote!(icu_properties::props::Script::Osage),
4279            Self::HanWithBopomofo => databake::quote!(icu_properties::props::Script::HanWithBopomofo),
4280            Self::Jamo => databake::quote!(icu_properties::props::Script::Jamo),
4281            Self::SymbolsEmoji => databake::quote!(icu_properties::props::Script::SymbolsEmoji),
4282            Self::MasaramGondi => databake::quote!(icu_properties::props::Script::MasaramGondi),
4283            Self::Soyombo => databake::quote!(icu_properties::props::Script::Soyombo),
4284            Self::ZanabazarSquare => databake::quote!(icu_properties::props::Script::ZanabazarSquare),
4285            Self::Dogra => databake::quote!(icu_properties::props::Script::Dogra),
4286            Self::GunjalaGondi => databake::quote!(icu_properties::props::Script::GunjalaGondi),
4287            Self::Makasar => databake::quote!(icu_properties::props::Script::Makasar),
4288            Self::Medefaidrin => databake::quote!(icu_properties::props::Script::Medefaidrin),
4289            Self::HanifiRohingya => databake::quote!(icu_properties::props::Script::HanifiRohingya),
4290            Self::Sogdian => databake::quote!(icu_properties::props::Script::Sogdian),
4291            Self::OldSogdian => databake::quote!(icu_properties::props::Script::OldSogdian),
4292            Self::Elymaic => databake::quote!(icu_properties::props::Script::Elymaic),
4293            Self::NyiakengPuachueHmong => databake::quote!(icu_properties::props::Script::NyiakengPuachueHmong),
4294            Self::Nandinagari => databake::quote!(icu_properties::props::Script::Nandinagari),
4295            Self::Wancho => databake::quote!(icu_properties::props::Script::Wancho),
4296            Self::Chorasmian => databake::quote!(icu_properties::props::Script::Chorasmian),
4297            Self::DivesAkuru => databake::quote!(icu_properties::props::Script::DivesAkuru),
4298            Self::KhitanSmallScript => databake::quote!(icu_properties::props::Script::KhitanSmallScript),
4299            Self::Yezidi => databake::quote!(icu_properties::props::Script::Yezidi),
4300            Self::CyproMinoan => databake::quote!(icu_properties::props::Script::CyproMinoan),
4301            Self::OldUyghur => databake::quote!(icu_properties::props::Script::OldUyghur),
4302            Self::Tangsa => databake::quote!(icu_properties::props::Script::Tangsa),
4303            Self::Toto => databake::quote!(icu_properties::props::Script::Toto),
4304            Self::Vithkuqi => databake::quote!(icu_properties::props::Script::Vithkuqi),
4305            Self::Kawi => databake::quote!(icu_properties::props::Script::Kawi),
4306            Self::NagMundari => databake::quote!(icu_properties::props::Script::NagMundari),
4307            Self::ArabicNastaliq => databake::quote!(icu_properties::props::Script::ArabicNastaliq),
4308            Self::Garay => databake::quote!(icu_properties::props::Script::Garay),
4309            Self::GurungKhema => databake::quote!(icu_properties::props::Script::GurungKhema),
4310            Self::KiratRai => databake::quote!(icu_properties::props::Script::KiratRai),
4311            Self::OlOnal => databake::quote!(icu_properties::props::Script::OlOnal),
4312            Self::Sunuwar => databake::quote!(icu_properties::props::Script::Sunuwar),
4313            Self::Todhri => databake::quote!(icu_properties::props::Script::Todhri),
4314            Self::TuluTigalari => databake::quote!(icu_properties::props::Script::TuluTigalari),
4315            Self::BeriaErfe => databake::quote!(icu_properties::props::Script::BeriaErfe),
4316            Self::Sidetic => databake::quote!(icu_properties::props::Script::Sidetic),
4317            Self::TaiYo => databake::quote!(icu_properties::props::Script::TaiYo),
4318            Self::TolongSiki => databake::quote!(icu_properties::props::Script::TolongSiki),
4319            Self::TraditionalHanWithLatin => databake::quote!(icu_properties::props::Script::TraditionalHanWithLatin),
4320            Self::ProtoCuneiform => databake::quote!(icu_properties::props::Script::ProtoCuneiform),
4321            Self::Seal => databake::quote!(icu_properties::props::Script::Seal),
4322            Self(v) => databake::quote!(icu_properties::props::Script(#v)),
4323        }
4324    }
4325}
4326
4327
4328impl From<Script> for u16  {
4329    fn from(other: Script) -> Self {
4330        other.0
4331    }
4332}
4333
4334impl Script {
4335    /// Deprecated
4336    #[deprecated]
4337    pub const ALL_VALUES: &'static [Self] = &[
4338        Self::Common,
4339        Self::Inherited,
4340        Self::Arabic,
4341        Self::Armenian,
4342        Self::Bengali,
4343        Self::Bopomofo,
4344        Self::Cherokee,
4345        Self::Coptic,
4346        Self::Cyrillic,
4347        Self::Deseret,
4348        Self::Devanagari,
4349        Self::Ethiopic,
4350        Self::Georgian,
4351        Self::Gothic,
4352        Self::Greek,
4353        Self::Gujarati,
4354        Self::Gurmukhi,
4355        Self::Han,
4356        Self::Hangul,
4357        Self::Hebrew,
4358        Self::Hiragana,
4359        Self::Kannada,
4360        Self::Katakana,
4361        Self::Khmer,
4362        Self::Lao,
4363        Self::Latin,
4364        Self::Malayalam,
4365        Self::Mongolian,
4366        Self::Myanmar,
4367        Self::Ogham,
4368        Self::OldItalic,
4369        Self::Oriya,
4370        Self::Runic,
4371        Self::Sinhala,
4372        Self::Syriac,
4373        Self::Tamil,
4374        Self::Telugu,
4375        Self::Thaana,
4376        Self::Thai,
4377        Self::Tibetan,
4378        Self::CanadianAboriginal,
4379        Self::Yi,
4380        Self::Tagalog,
4381        Self::Hanunoo,
4382        Self::Buhid,
4383        Self::Tagbanwa,
4384        Self::Braille,
4385        Self::Cypriot,
4386        Self::Limbu,
4387        Self::LinearB,
4388        Self::Osmanya,
4389        Self::Shavian,
4390        Self::TaiLe,
4391        Self::Ugaritic,
4392        Self::KatakanaOrHiragana,
4393        Self::Buginese,
4394        Self::Glagolitic,
4395        Self::Kharoshthi,
4396        Self::SylotiNagri,
4397        Self::NewTaiLue,
4398        Self::Tifinagh,
4399        Self::OldPersian,
4400        Self::Balinese,
4401        Self::Batak,
4402        Self::Blissymbols,
4403        Self::Brahmi,
4404        Self::Cham,
4405        Self::Cirth,
4406        Self::OldChurchSlavonicCyrillic,
4407        Self::DemoticEgyptian,
4408        Self::HieraticEgyptian,
4409        Self::EgyptianHieroglyphs,
4410        Self::Khutsuri,
4411        Self::SimplifiedHan,
4412        Self::TraditionalHan,
4413        Self::PahawhHmong,
4414        Self::OldHungarian,
4415        Self::HarappanIndus,
4416        Self::Javanese,
4417        Self::KayahLi,
4418        Self::LatinFraktur,
4419        Self::LatinGaelic,
4420        Self::Lepcha,
4421        Self::LinearA,
4422        Self::Mandaic,
4423        Self::MayanHieroglyphs,
4424        Self::MeroiticHieroglyphs,
4425        Self::Nko,
4426        Self::OldTurkic,
4427        Self::OldPermic,
4428        Self::PhagsPa,
4429        Self::Phoenician,
4430        Self::Miao,
4431        Self::Rongorongo,
4432        Self::Sarati,
4433        Self::EstrangeloSyriac,
4434        Self::WesternSyriac,
4435        Self::EasternSyriac,
4436        Self::Tengwar,
4437        Self::Vai,
4438        Self::VisibleSpeech,
4439        Self::Cuneiform,
4440        Self::UnwrittenLanguages,
4441        Self::Unknown,
4442        Self::Carian,
4443        Self::Japanese,
4444        Self::TaiTham,
4445        Self::Lycian,
4446        Self::Lydian,
4447        Self::OlChiki,
4448        Self::Rejang,
4449        Self::Saurashtra,
4450        Self::SignWriting,
4451        Self::Sundanese,
4452        Self::Moon,
4453        Self::MeeteiMayek,
4454        Self::ImperialAramaic,
4455        Self::Avestan,
4456        Self::Chakma,
4457        Self::Korean,
4458        Self::Kaithi,
4459        Self::Manichaean,
4460        Self::InscriptionalPahlavi,
4461        Self::PsalterPahlavi,
4462        Self::BookPahlavi,
4463        Self::InscriptionalParthian,
4464        Self::Samaritan,
4465        Self::TaiViet,
4466        Self::MathematicalNotation,
4467        Self::Symbols,
4468        Self::Bamum,
4469        Self::Lisu,
4470        Self::NakhiGeba,
4471        Self::OldSouthArabian,
4472        Self::BassaVah,
4473        Self::Duployan,
4474        Self::Elbasan,
4475        Self::Grantha,
4476        Self::Kpelle,
4477        Self::Loma,
4478        Self::MendeKikakui,
4479        Self::MeroiticCursive,
4480        Self::OldNorthArabian,
4481        Self::Nabataean,
4482        Self::Palmyrene,
4483        Self::Khudawadi,
4484        Self::WarangCiti,
4485        Self::Afaka,
4486        Self::Jurchen,
4487        Self::Mro,
4488        Self::Nushu,
4489        Self::Sharada,
4490        Self::SoraSompeng,
4491        Self::Takri,
4492        Self::Tangut,
4493        Self::Woleai,
4494        Self::AnatolianHieroglyphs,
4495        Self::Khojki,
4496        Self::Tirhuta,
4497        Self::CaucasianAlbanian,
4498        Self::Mahajani,
4499        Self::Ahom,
4500        Self::Hatran,
4501        Self::Modi,
4502        Self::Multani,
4503        Self::PauCinHau,
4504        Self::Siddham,
4505        Self::Adlam,
4506        Self::Bhaiksuki,
4507        Self::Marchen,
4508        Self::Newa,
4509        Self::Osage,
4510        Self::HanWithBopomofo,
4511        Self::Jamo,
4512        Self::SymbolsEmoji,
4513        Self::MasaramGondi,
4514        Self::Soyombo,
4515        Self::ZanabazarSquare,
4516        Self::Dogra,
4517        Self::GunjalaGondi,
4518        Self::Makasar,
4519        Self::Medefaidrin,
4520        Self::HanifiRohingya,
4521        Self::Sogdian,
4522        Self::OldSogdian,
4523        Self::Elymaic,
4524        Self::NyiakengPuachueHmong,
4525        Self::Nandinagari,
4526        Self::Wancho,
4527        Self::Chorasmian,
4528        Self::DivesAkuru,
4529        Self::KhitanSmallScript,
4530        Self::Yezidi,
4531        Self::CyproMinoan,
4532        Self::OldUyghur,
4533        Self::Tangsa,
4534        Self::Toto,
4535        Self::Vithkuqi,
4536        Self::Kawi,
4537        Self::NagMundari,
4538        Self::ArabicNastaliq,
4539        Self::Garay,
4540        Self::GurungKhema,
4541        Self::KiratRai,
4542        Self::OlOnal,
4543        Self::Sunuwar,
4544        Self::Todhri,
4545        Self::TuluTigalari,
4546        Self::BeriaErfe,
4547        Self::Sidetic,
4548        Self::TaiYo,
4549        Self::TolongSiki,
4550        Self::TraditionalHanWithLatin,
4551        Self::ProtoCuneiform,
4552        Self::Seal,
4553    ];
4554
4555    #[cfg(feature = "datagen")]
4556    #[doc(hidden)]
4557    pub fn names() -> impl Iterator<Item = (&'static str, Self)> {
4558        [
4559            ("Zyyy", Self::Common),
4560            ("Zinh", Self::Inherited),
4561            ("Arab", Self::Arabic),
4562            ("Armn", Self::Armenian),
4563            ("Beng", Self::Bengali),
4564            ("Bopo", Self::Bopomofo),
4565            ("Cher", Self::Cherokee),
4566            ("Copt", Self::Coptic),
4567            ("Cyrl", Self::Cyrillic),
4568            ("Dsrt", Self::Deseret),
4569            ("Deva", Self::Devanagari),
4570            ("Ethi", Self::Ethiopic),
4571            ("Geor", Self::Georgian),
4572            ("Goth", Self::Gothic),
4573            ("Grek", Self::Greek),
4574            ("Gujr", Self::Gujarati),
4575            ("Guru", Self::Gurmukhi),
4576            ("Hani", Self::Han),
4577            ("Hang", Self::Hangul),
4578            ("Hebr", Self::Hebrew),
4579            ("Hira", Self::Hiragana),
4580            ("Knda", Self::Kannada),
4581            ("Kana", Self::Katakana),
4582            ("Khmr", Self::Khmer),
4583            ("Laoo", Self::Lao),
4584            ("Latn", Self::Latin),
4585            ("Mlym", Self::Malayalam),
4586            ("Mong", Self::Mongolian),
4587            ("Mymr", Self::Myanmar),
4588            ("Ogam", Self::Ogham),
4589            ("Ital", Self::OldItalic),
4590            ("Orya", Self::Oriya),
4591            ("Runr", Self::Runic),
4592            ("Sinh", Self::Sinhala),
4593            ("Syrc", Self::Syriac),
4594            ("Taml", Self::Tamil),
4595            ("Telu", Self::Telugu),
4596            ("Thaa", Self::Thaana),
4597            ("Thai", Self::Thai),
4598            ("Tibt", Self::Tibetan),
4599            ("Cans", Self::CanadianAboriginal),
4600            ("Yiii", Self::Yi),
4601            ("Tglg", Self::Tagalog),
4602            ("Hano", Self::Hanunoo),
4603            ("Buhd", Self::Buhid),
4604            ("Tagb", Self::Tagbanwa),
4605            ("Brai", Self::Braille),
4606            ("Cprt", Self::Cypriot),
4607            ("Limb", Self::Limbu),
4608            ("Linb", Self::LinearB),
4609            ("Osma", Self::Osmanya),
4610            ("Shaw", Self::Shavian),
4611            ("Tale", Self::TaiLe),
4612            ("Ugar", Self::Ugaritic),
4613            ("Hrkt", Self::KatakanaOrHiragana),
4614            ("Bugi", Self::Buginese),
4615            ("Glag", Self::Glagolitic),
4616            ("Khar", Self::Kharoshthi),
4617            ("Sylo", Self::SylotiNagri),
4618            ("Talu", Self::NewTaiLue),
4619            ("Tfng", Self::Tifinagh),
4620            ("Xpeo", Self::OldPersian),
4621            ("Bali", Self::Balinese),
4622            ("Batk", Self::Batak),
4623            ("Blis", Self::Blissymbols),
4624            ("Brah", Self::Brahmi),
4625            ("Cham", Self::Cham),
4626            ("Cirt", Self::Cirth),
4627            ("Cyrs", Self::OldChurchSlavonicCyrillic),
4628            ("Egyd", Self::DemoticEgyptian),
4629            ("Egyh", Self::HieraticEgyptian),
4630            ("Egyp", Self::EgyptianHieroglyphs),
4631            ("Geok", Self::Khutsuri),
4632            ("Hans", Self::SimplifiedHan),
4633            ("Hant", Self::TraditionalHan),
4634            ("Hmng", Self::PahawhHmong),
4635            ("Hung", Self::OldHungarian),
4636            ("Inds", Self::HarappanIndus),
4637            ("Java", Self::Javanese),
4638            ("Kali", Self::KayahLi),
4639            ("Latf", Self::LatinFraktur),
4640            ("Latg", Self::LatinGaelic),
4641            ("Lepc", Self::Lepcha),
4642            ("Lina", Self::LinearA),
4643            ("Mand", Self::Mandaic),
4644            ("Maya", Self::MayanHieroglyphs),
4645            ("Mero", Self::MeroiticHieroglyphs),
4646            ("Nkoo", Self::Nko),
4647            ("Orkh", Self::OldTurkic),
4648            ("Perm", Self::OldPermic),
4649            ("Phag", Self::PhagsPa),
4650            ("Phnx", Self::Phoenician),
4651            ("Plrd", Self::Miao),
4652            ("Roro", Self::Rongorongo),
4653            ("Sara", Self::Sarati),
4654            ("Syre", Self::EstrangeloSyriac),
4655            ("Syrj", Self::WesternSyriac),
4656            ("Syrn", Self::EasternSyriac),
4657            ("Teng", Self::Tengwar),
4658            ("Vaii", Self::Vai),
4659            ("Visp", Self::VisibleSpeech),
4660            ("Xsux", Self::Cuneiform),
4661            ("Zxxx", Self::UnwrittenLanguages),
4662            ("Zzzz", Self::Unknown),
4663            ("Cari", Self::Carian),
4664            ("Jpan", Self::Japanese),
4665            ("Lana", Self::TaiTham),
4666            ("Lyci", Self::Lycian),
4667            ("Lydi", Self::Lydian),
4668            ("Olck", Self::OlChiki),
4669            ("Rjng", Self::Rejang),
4670            ("Saur", Self::Saurashtra),
4671            ("Sgnw", Self::SignWriting),
4672            ("Sund", Self::Sundanese),
4673            ("Moon", Self::Moon),
4674            ("Mtei", Self::MeeteiMayek),
4675            ("Armi", Self::ImperialAramaic),
4676            ("Avst", Self::Avestan),
4677            ("Cakm", Self::Chakma),
4678            ("Kore", Self::Korean),
4679            ("Kthi", Self::Kaithi),
4680            ("Mani", Self::Manichaean),
4681            ("Phli", Self::InscriptionalPahlavi),
4682            ("Phlp", Self::PsalterPahlavi),
4683            ("Phlv", Self::BookPahlavi),
4684            ("Prti", Self::InscriptionalParthian),
4685            ("Samr", Self::Samaritan),
4686            ("Tavt", Self::TaiViet),
4687            ("Zmth", Self::MathematicalNotation),
4688            ("Zsym", Self::Symbols),
4689            ("Bamu", Self::Bamum),
4690            ("Lisu", Self::Lisu),
4691            ("Nkgb", Self::NakhiGeba),
4692            ("Sarb", Self::OldSouthArabian),
4693            ("Bass", Self::BassaVah),
4694            ("Dupl", Self::Duployan),
4695            ("Elba", Self::Elbasan),
4696            ("Gran", Self::Grantha),
4697            ("Kpel", Self::Kpelle),
4698            ("Loma", Self::Loma),
4699            ("Mend", Self::MendeKikakui),
4700            ("Merc", Self::MeroiticCursive),
4701            ("Narb", Self::OldNorthArabian),
4702            ("Nbat", Self::Nabataean),
4703            ("Palm", Self::Palmyrene),
4704            ("Sind", Self::Khudawadi),
4705            ("Wara", Self::WarangCiti),
4706            ("Afak", Self::Afaka),
4707            ("Jurc", Self::Jurchen),
4708            ("Mroo", Self::Mro),
4709            ("Nshu", Self::Nushu),
4710            ("Shrd", Self::Sharada),
4711            ("Sora", Self::SoraSompeng),
4712            ("Takr", Self::Takri),
4713            ("Tang", Self::Tangut),
4714            ("Wole", Self::Woleai),
4715            ("Hluw", Self::AnatolianHieroglyphs),
4716            ("Khoj", Self::Khojki),
4717            ("Tirh", Self::Tirhuta),
4718            ("Aghb", Self::CaucasianAlbanian),
4719            ("Mahj", Self::Mahajani),
4720            ("Ahom", Self::Ahom),
4721            ("Hatr", Self::Hatran),
4722            ("Modi", Self::Modi),
4723            ("Mult", Self::Multani),
4724            ("Pauc", Self::PauCinHau),
4725            ("Sidd", Self::Siddham),
4726            ("Adlm", Self::Adlam),
4727            ("Bhks", Self::Bhaiksuki),
4728            ("Marc", Self::Marchen),
4729            ("Newa", Self::Newa),
4730            ("Osge", Self::Osage),
4731            ("Hanb", Self::HanWithBopomofo),
4732            ("Jamo", Self::Jamo),
4733            ("Zsye", Self::SymbolsEmoji),
4734            ("Gonm", Self::MasaramGondi),
4735            ("Soyo", Self::Soyombo),
4736            ("Zanb", Self::ZanabazarSquare),
4737            ("Dogr", Self::Dogra),
4738            ("Gong", Self::GunjalaGondi),
4739            ("Maka", Self::Makasar),
4740            ("Medf", Self::Medefaidrin),
4741            ("Rohg", Self::HanifiRohingya),
4742            ("Sogd", Self::Sogdian),
4743            ("Sogo", Self::OldSogdian),
4744            ("Elym", Self::Elymaic),
4745            ("Hmnp", Self::NyiakengPuachueHmong),
4746            ("Nand", Self::Nandinagari),
4747            ("Wcho", Self::Wancho),
4748            ("Chrs", Self::Chorasmian),
4749            ("Diak", Self::DivesAkuru),
4750            ("Kits", Self::KhitanSmallScript),
4751            ("Yezi", Self::Yezidi),
4752            ("Cpmn", Self::CyproMinoan),
4753            ("Ougr", Self::OldUyghur),
4754            ("Tnsa", Self::Tangsa),
4755            ("Toto", Self::Toto),
4756            ("Vith", Self::Vithkuqi),
4757            ("Kawi", Self::Kawi),
4758            ("Nagm", Self::NagMundari),
4759            ("Aran", Self::ArabicNastaliq),
4760            ("Gara", Self::Garay),
4761            ("Gukh", Self::GurungKhema),
4762            ("Krai", Self::KiratRai),
4763            ("Onao", Self::OlOnal),
4764            ("Sunu", Self::Sunuwar),
4765            ("Todr", Self::Todhri),
4766            ("Tutg", Self::TuluTigalari),
4767            ("Berf", Self::BeriaErfe),
4768            ("Sidt", Self::Sidetic),
4769            ("Tayo", Self::TaiYo),
4770            ("Tols", Self::TolongSiki),
4771            ("Hntl", Self::TraditionalHanWithLatin),
4772            ("Pcun", Self::ProtoCuneiform),
4773            ("Seal", Self::Seal),
4774        ].into_iter()
4775    }
4776}
4777
4778impl SentenceBreak {
4779    pub const Other: Self = Self(0);
4780    pub const XX: Self = Self::Other;
4781    pub const ATerm: Self = Self(1);
4782    pub const AT: Self = Self::ATerm;
4783    pub const Close: Self = Self(2);
4784    pub const CL: Self = Self::Close;
4785    pub const Format: Self = Self(3);
4786    pub const FO: Self = Self::Format;
4787    pub const Lower: Self = Self(4);
4788    pub const LO: Self = Self::Lower;
4789    pub const Numeric: Self = Self(5);
4790    pub const NU: Self = Self::Numeric;
4791    pub const OLetter: Self = Self(6);
4792    pub const LE: Self = Self::OLetter;
4793    pub const Sep: Self = Self(7);
4794    pub const SE: Self = Self::Sep;
4795    pub const Sp: Self = Self(8);
4796    pub const SP: Self = Self::Sp;
4797    pub const STerm: Self = Self(9);
4798    pub const ST: Self = Self::STerm;
4799    pub const Upper: Self = Self(10);
4800    pub const UP: Self = Self::Upper;
4801    pub const CR: Self = Self(11);
4802    pub const Extend: Self = Self(12);
4803    pub const EX: Self = Self::Extend;
4804    pub const LF: Self = Self(13);
4805    pub const SContinue: Self = Self(14);
4806    pub const SC: Self = Self::SContinue;
4807}
4808
4809#[cfg(feature = "datagen")]
4810impl databake::Bake for SentenceBreak {
4811    fn bake(&self, env: &databake::CrateEnv) -> databake::TokenStream {
4812        env.insert("icu_properties");
4813        match *self {
4814            Self::Other => databake::quote!(icu_properties::props::SentenceBreak::Other),
4815            Self::ATerm => databake::quote!(icu_properties::props::SentenceBreak::ATerm),
4816            Self::Close => databake::quote!(icu_properties::props::SentenceBreak::Close),
4817            Self::Format => databake::quote!(icu_properties::props::SentenceBreak::Format),
4818            Self::Lower => databake::quote!(icu_properties::props::SentenceBreak::Lower),
4819            Self::Numeric => databake::quote!(icu_properties::props::SentenceBreak::Numeric),
4820            Self::OLetter => databake::quote!(icu_properties::props::SentenceBreak::OLetter),
4821            Self::Sep => databake::quote!(icu_properties::props::SentenceBreak::Sep),
4822            Self::Sp => databake::quote!(icu_properties::props::SentenceBreak::Sp),
4823            Self::STerm => databake::quote!(icu_properties::props::SentenceBreak::STerm),
4824            Self::Upper => databake::quote!(icu_properties::props::SentenceBreak::Upper),
4825            Self::CR => databake::quote!(icu_properties::props::SentenceBreak::CR),
4826            Self::Extend => databake::quote!(icu_properties::props::SentenceBreak::Extend),
4827            Self::LF => databake::quote!(icu_properties::props::SentenceBreak::LF),
4828            Self::SContinue => databake::quote!(icu_properties::props::SentenceBreak::SContinue),
4829            Self(v) => databake::quote!(icu_properties::props::SentenceBreak(#v)),
4830        }
4831    }
4832}
4833
4834
4835impl From<SentenceBreak> for u16  {
4836    fn from(other: SentenceBreak) -> Self {
4837        other.0 as u16
4838    }
4839}
4840
4841impl SentenceBreak {
4842    /// Deprecated
4843    #[deprecated]
4844    pub const ALL_VALUES: &'static [Self] = &[
4845        Self::Other,
4846        Self::ATerm,
4847        Self::Close,
4848        Self::Format,
4849        Self::Lower,
4850        Self::Numeric,
4851        Self::OLetter,
4852        Self::Sep,
4853        Self::Sp,
4854        Self::STerm,
4855        Self::Upper,
4856        Self::CR,
4857        Self::Extend,
4858        Self::LF,
4859        Self::SContinue,
4860    ];
4861
4862    #[cfg(feature = "datagen")]
4863    #[doc(hidden)]
4864    pub fn names() -> impl Iterator<Item = (&'static str, Self)> {
4865        [
4866            ("XX", Self::Other),
4867            ("AT", Self::ATerm),
4868            ("CL", Self::Close),
4869            ("FO", Self::Format),
4870            ("LO", Self::Lower),
4871            ("NU", Self::Numeric),
4872            ("LE", Self::OLetter),
4873            ("SE", Self::Sep),
4874            ("SP", Self::Sp),
4875            ("ST", Self::STerm),
4876            ("UP", Self::Upper),
4877            ("CR", Self::CR),
4878            ("EX", Self::Extend),
4879            ("LF", Self::LF),
4880            ("SC", Self::SContinue),
4881        ].into_iter()
4882    }
4883}
4884
4885impl VerticalOrientation {
4886    pub const Rotated: Self = Self(0);
4887    pub const R: Self = Self::Rotated;
4888    pub const TransformedRotated: Self = Self(1);
4889    pub const Tr: Self = Self::TransformedRotated;
4890    pub const TransformedUpright: Self = Self(2);
4891    pub const Tu: Self = Self::TransformedUpright;
4892    pub const Upright: Self = Self(3);
4893    pub const U: Self = Self::Upright;
4894}
4895
4896#[cfg(feature = "datagen")]
4897impl databake::Bake for VerticalOrientation {
4898    fn bake(&self, env: &databake::CrateEnv) -> databake::TokenStream {
4899        env.insert("icu_properties");
4900        match *self {
4901            Self::Rotated => databake::quote!(icu_properties::props::VerticalOrientation::Rotated),
4902            Self::TransformedRotated => databake::quote!(icu_properties::props::VerticalOrientation::TransformedRotated),
4903            Self::TransformedUpright => databake::quote!(icu_properties::props::VerticalOrientation::TransformedUpright),
4904            Self::Upright => databake::quote!(icu_properties::props::VerticalOrientation::Upright),
4905            Self(v) => databake::quote!(icu_properties::props::VerticalOrientation(#v)),
4906        }
4907    }
4908}
4909
4910
4911impl From<VerticalOrientation> for u16  {
4912    fn from(other: VerticalOrientation) -> Self {
4913        other.0 as u16
4914    }
4915}
4916
4917impl VerticalOrientation {
4918    /// Deprecated
4919    #[deprecated]
4920    pub const ALL_VALUES: &'static [Self] = &[
4921        Self::Rotated,
4922        Self::TransformedRotated,
4923        Self::TransformedUpright,
4924        Self::Upright,
4925    ];
4926
4927    #[cfg(feature = "datagen")]
4928    #[doc(hidden)]
4929    pub fn names() -> impl Iterator<Item = (&'static str, Self)> {
4930        [
4931            ("R", Self::Rotated),
4932            ("Tr", Self::TransformedRotated),
4933            ("Tu", Self::TransformedUpright),
4934            ("U", Self::Upright),
4935        ].into_iter()
4936    }
4937}
4938
4939impl WordBreak {
4940    pub const Other: Self = Self(0);
4941    pub const XX: Self = Self::Other;
4942    pub const ALetter: Self = Self(1);
4943    pub const LE: Self = Self::ALetter;
4944    pub const Format: Self = Self(2);
4945    pub const FO: Self = Self::Format;
4946    pub const Katakana: Self = Self(3);
4947    pub const KA: Self = Self::Katakana;
4948    pub const MidLetter: Self = Self(4);
4949    pub const ML: Self = Self::MidLetter;
4950    pub const MidNum: Self = Self(5);
4951    pub const MN: Self = Self::MidNum;
4952    pub const Numeric: Self = Self(6);
4953    pub const NU: Self = Self::Numeric;
4954    pub const ExtendNumLet: Self = Self(7);
4955    pub const EX: Self = Self::ExtendNumLet;
4956    pub const CR: Self = Self(8);
4957    pub const Extend: Self = Self(9);
4958    pub const LF: Self = Self(10);
4959    pub const MidNumLet: Self = Self(11);
4960    pub const MB: Self = Self::MidNumLet;
4961    pub const Newline: Self = Self(12);
4962    pub const NL: Self = Self::Newline;
4963    pub const RegionalIndicator: Self = Self(13);
4964    pub const RI: Self = Self::RegionalIndicator;
4965    pub const HebrewLetter: Self = Self(14);
4966    pub const HL: Self = Self::HebrewLetter;
4967    pub const SingleQuote: Self = Self(15);
4968    pub const SQ: Self = Self::SingleQuote;
4969    pub const DoubleQuote: Self = Self(16);
4970    pub const DQ: Self = Self::DoubleQuote;
4971    pub const EBase: Self = Self(17);
4972    pub const EB: Self = Self::EBase;
4973    pub const EBaseGAZ: Self = Self(18);
4974    pub const EBG: Self = Self::EBaseGAZ;
4975    pub const EModifier: Self = Self(19);
4976    pub const EM: Self = Self::EModifier;
4977    pub const GlueAfterZwj: Self = Self(20);
4978    pub const GAZ: Self = Self::GlueAfterZwj;
4979    pub const ZWJ: Self = Self(21);
4980    pub const WSegSpace: Self = Self(22);
4981}
4982
4983#[cfg(feature = "datagen")]
4984impl databake::Bake for WordBreak {
4985    fn bake(&self, env: &databake::CrateEnv) -> databake::TokenStream {
4986        env.insert("icu_properties");
4987        match *self {
4988            Self::Other => databake::quote!(icu_properties::props::WordBreak::Other),
4989            Self::ALetter => databake::quote!(icu_properties::props::WordBreak::ALetter),
4990            Self::Format => databake::quote!(icu_properties::props::WordBreak::Format),
4991            Self::Katakana => databake::quote!(icu_properties::props::WordBreak::Katakana),
4992            Self::MidLetter => databake::quote!(icu_properties::props::WordBreak::MidLetter),
4993            Self::MidNum => databake::quote!(icu_properties::props::WordBreak::MidNum),
4994            Self::Numeric => databake::quote!(icu_properties::props::WordBreak::Numeric),
4995            Self::ExtendNumLet => databake::quote!(icu_properties::props::WordBreak::ExtendNumLet),
4996            Self::CR => databake::quote!(icu_properties::props::WordBreak::CR),
4997            Self::Extend => databake::quote!(icu_properties::props::WordBreak::Extend),
4998            Self::LF => databake::quote!(icu_properties::props::WordBreak::LF),
4999            Self::MidNumLet => databake::quote!(icu_properties::props::WordBreak::MidNumLet),
5000            Self::Newline => databake::quote!(icu_properties::props::WordBreak::Newline),
5001            Self::RegionalIndicator => databake::quote!(icu_properties::props::WordBreak::RegionalIndicator),
5002            Self::HebrewLetter => databake::quote!(icu_properties::props::WordBreak::HebrewLetter),
5003            Self::SingleQuote => databake::quote!(icu_properties::props::WordBreak::SingleQuote),
5004            Self::DoubleQuote => databake::quote!(icu_properties::props::WordBreak::DoubleQuote),
5005            Self::EBase => databake::quote!(icu_properties::props::WordBreak::EBase),
5006            Self::EBaseGAZ => databake::quote!(icu_properties::props::WordBreak::EBaseGAZ),
5007            Self::EModifier => databake::quote!(icu_properties::props::WordBreak::EModifier),
5008            Self::GlueAfterZwj => databake::quote!(icu_properties::props::WordBreak::GlueAfterZwj),
5009            Self::ZWJ => databake::quote!(icu_properties::props::WordBreak::ZWJ),
5010            Self::WSegSpace => databake::quote!(icu_properties::props::WordBreak::WSegSpace),
5011            Self(v) => databake::quote!(icu_properties::props::WordBreak(#v)),
5012        }
5013    }
5014}
5015
5016
5017impl From<WordBreak> for u16  {
5018    fn from(other: WordBreak) -> Self {
5019        other.0 as u16
5020    }
5021}
5022
5023impl WordBreak {
5024    /// Deprecated
5025    #[deprecated]
5026    pub const ALL_VALUES: &'static [Self] = &[
5027        Self::Other,
5028        Self::ALetter,
5029        Self::Format,
5030        Self::Katakana,
5031        Self::MidLetter,
5032        Self::MidNum,
5033        Self::Numeric,
5034        Self::ExtendNumLet,
5035        Self::CR,
5036        Self::Extend,
5037        Self::LF,
5038        Self::MidNumLet,
5039        Self::Newline,
5040        Self::RegionalIndicator,
5041        Self::HebrewLetter,
5042        Self::SingleQuote,
5043        Self::DoubleQuote,
5044        Self::EBase,
5045        Self::EBaseGAZ,
5046        Self::EModifier,
5047        Self::GlueAfterZwj,
5048        Self::ZWJ,
5049        Self::WSegSpace,
5050    ];
5051
5052    #[cfg(feature = "datagen")]
5053    #[doc(hidden)]
5054    pub fn names() -> impl Iterator<Item = (&'static str, Self)> {
5055        [
5056            ("XX", Self::Other),
5057            ("LE", Self::ALetter),
5058            ("FO", Self::Format),
5059            ("KA", Self::Katakana),
5060            ("ML", Self::MidLetter),
5061            ("MN", Self::MidNum),
5062            ("NU", Self::Numeric),
5063            ("EX", Self::ExtendNumLet),
5064            ("CR", Self::CR),
5065            ("Extend", Self::Extend),
5066            ("LF", Self::LF),
5067            ("MB", Self::MidNumLet),
5068            ("NL", Self::Newline),
5069            ("RI", Self::RegionalIndicator),
5070            ("HL", Self::HebrewLetter),
5071            ("SQ", Self::SingleQuote),
5072            ("DQ", Self::DoubleQuote),
5073            ("EB", Self::EBase),
5074            ("EBG", Self::EBaseGAZ),
5075            ("EM", Self::EModifier),
5076            ("GAZ", Self::GlueAfterZwj),
5077            ("ZWJ", Self::ZWJ),
5078            ("WSegSpace", Self::WSegSpace),
5079        ].into_iter()
5080    }
5081}