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 CanonicalCombiningClass {
162    pub const NotReordered: Self = Self(0);
163    pub const NR: Self = Self::NotReordered;
164    pub const Overlay: Self = Self(1);
165    pub const OV: Self = Self::Overlay;
166    pub const HanReading: Self = Self(6);
167    pub const HANR: Self = Self::HanReading;
168    pub const Nukta: Self = Self(7);
169    pub const NK: Self = Self::Nukta;
170    pub const KanaVoicing: Self = Self(8);
171    pub const KV: Self = Self::KanaVoicing;
172    pub const Virama: Self = Self(9);
173    pub const VR: Self = Self::Virama;
174    pub const CCC10: Self = Self(10);
175    pub const CCC11: Self = Self(11);
176    pub const CCC12: Self = Self(12);
177    pub const CCC13: Self = Self(13);
178    pub const CCC14: Self = Self(14);
179    pub const CCC15: Self = Self(15);
180    pub const CCC16: Self = Self(16);
181    pub const CCC17: Self = Self(17);
182    pub const CCC18: Self = Self(18);
183    pub const CCC19: Self = Self(19);
184    pub const CCC20: Self = Self(20);
185    pub const CCC21: Self = Self(21);
186    pub const CCC22: Self = Self(22);
187    pub const CCC23: Self = Self(23);
188    pub const CCC24: Self = Self(24);
189    pub const CCC25: Self = Self(25);
190    pub const CCC26: Self = Self(26);
191    pub const CCC27: Self = Self(27);
192    pub const CCC28: Self = Self(28);
193    pub const CCC29: Self = Self(29);
194    pub const CCC30: Self = Self(30);
195    pub const CCC31: Self = Self(31);
196    pub const CCC32: Self = Self(32);
197    pub const CCC33: Self = Self(33);
198    pub const CCC34: Self = Self(34);
199    pub const CCC35: Self = Self(35);
200    pub const CCC36: Self = Self(36);
201    pub const CCC84: Self = Self(84);
202    pub const CCC91: Self = Self(91);
203    pub const CCC103: Self = Self(103);
204    pub const CCC107: Self = Self(107);
205    pub const CCC118: Self = Self(118);
206    pub const CCC122: Self = Self(122);
207    pub const CCC129: Self = Self(129);
208    pub const CCC130: Self = Self(130);
209    pub const CCC132: Self = Self(132);
210    pub const CCC133: Self = Self(133);
211    pub const AttachedBelowLeft: Self = Self(200);
212    pub const ATBL: Self = Self::AttachedBelowLeft;
213    pub const AttachedBelow: Self = Self(202);
214    pub const ATB: Self = Self::AttachedBelow;
215    pub const AttachedAbove: Self = Self(214);
216    pub const ATA: Self = Self::AttachedAbove;
217    pub const AttachedAboveRight: Self = Self(216);
218    pub const ATAR: Self = Self::AttachedAboveRight;
219    pub const BelowLeft: Self = Self(218);
220    pub const BL: Self = Self::BelowLeft;
221    pub const Below: Self = Self(220);
222    pub const B: Self = Self::Below;
223    pub const BelowRight: Self = Self(222);
224    pub const BR: Self = Self::BelowRight;
225    pub const Left: Self = Self(224);
226    pub const L: Self = Self::Left;
227    pub const Right: Self = Self(226);
228    pub const R: Self = Self::Right;
229    pub const AboveLeft: Self = Self(228);
230    pub const AL: Self = Self::AboveLeft;
231    pub const Above: Self = Self(230);
232    pub const A: Self = Self::Above;
233    pub const AboveRight: Self = Self(232);
234    pub const AR: Self = Self::AboveRight;
235    pub const DoubleBelow: Self = Self(233);
236    pub const DB: Self = Self::DoubleBelow;
237    pub const DoubleAbove: Self = Self(234);
238    pub const DA: Self = Self::DoubleAbove;
239    pub const IotaSubscript: Self = Self(240);
240    pub const IS: Self = Self::IotaSubscript;
241}
242
243#[cfg(feature = "datagen")]
244impl databake::Bake for CanonicalCombiningClass {
245    fn bake(&self, env: &databake::CrateEnv) -> databake::TokenStream {
246        env.insert("icu_properties");
247        match *self {
248            Self::NotReordered => databake::quote!(icu_properties::props::CanonicalCombiningClass::NotReordered),
249            Self::Overlay => databake::quote!(icu_properties::props::CanonicalCombiningClass::Overlay),
250            Self::HanReading => databake::quote!(icu_properties::props::CanonicalCombiningClass::HanReading),
251            Self::Nukta => databake::quote!(icu_properties::props::CanonicalCombiningClass::Nukta),
252            Self::KanaVoicing => databake::quote!(icu_properties::props::CanonicalCombiningClass::KanaVoicing),
253            Self::Virama => databake::quote!(icu_properties::props::CanonicalCombiningClass::Virama),
254            Self::CCC10 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC10),
255            Self::CCC11 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC11),
256            Self::CCC12 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC12),
257            Self::CCC13 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC13),
258            Self::CCC14 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC14),
259            Self::CCC15 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC15),
260            Self::CCC16 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC16),
261            Self::CCC17 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC17),
262            Self::CCC18 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC18),
263            Self::CCC19 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC19),
264            Self::CCC20 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC20),
265            Self::CCC21 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC21),
266            Self::CCC22 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC22),
267            Self::CCC23 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC23),
268            Self::CCC24 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC24),
269            Self::CCC25 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC25),
270            Self::CCC26 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC26),
271            Self::CCC27 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC27),
272            Self::CCC28 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC28),
273            Self::CCC29 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC29),
274            Self::CCC30 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC30),
275            Self::CCC31 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC31),
276            Self::CCC32 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC32),
277            Self::CCC33 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC33),
278            Self::CCC34 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC34),
279            Self::CCC35 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC35),
280            Self::CCC36 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC36),
281            Self::CCC84 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC84),
282            Self::CCC91 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC91),
283            Self::CCC103 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC103),
284            Self::CCC107 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC107),
285            Self::CCC118 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC118),
286            Self::CCC122 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC122),
287            Self::CCC129 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC129),
288            Self::CCC130 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC130),
289            Self::CCC132 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC132),
290            Self::CCC133 => databake::quote!(icu_properties::props::CanonicalCombiningClass::CCC133),
291            Self::AttachedBelowLeft => databake::quote!(icu_properties::props::CanonicalCombiningClass::AttachedBelowLeft),
292            Self::AttachedBelow => databake::quote!(icu_properties::props::CanonicalCombiningClass::AttachedBelow),
293            Self::AttachedAbove => databake::quote!(icu_properties::props::CanonicalCombiningClass::AttachedAbove),
294            Self::AttachedAboveRight => databake::quote!(icu_properties::props::CanonicalCombiningClass::AttachedAboveRight),
295            Self::BelowLeft => databake::quote!(icu_properties::props::CanonicalCombiningClass::BelowLeft),
296            Self::Below => databake::quote!(icu_properties::props::CanonicalCombiningClass::Below),
297            Self::BelowRight => databake::quote!(icu_properties::props::CanonicalCombiningClass::BelowRight),
298            Self::Left => databake::quote!(icu_properties::props::CanonicalCombiningClass::Left),
299            Self::Right => databake::quote!(icu_properties::props::CanonicalCombiningClass::Right),
300            Self::AboveLeft => databake::quote!(icu_properties::props::CanonicalCombiningClass::AboveLeft),
301            Self::Above => databake::quote!(icu_properties::props::CanonicalCombiningClass::Above),
302            Self::AboveRight => databake::quote!(icu_properties::props::CanonicalCombiningClass::AboveRight),
303            Self::DoubleBelow => databake::quote!(icu_properties::props::CanonicalCombiningClass::DoubleBelow),
304            Self::DoubleAbove => databake::quote!(icu_properties::props::CanonicalCombiningClass::DoubleAbove),
305            Self::IotaSubscript => databake::quote!(icu_properties::props::CanonicalCombiningClass::IotaSubscript),
306            Self(v) => databake::quote!(icu_properties::props::CanonicalCombiningClass(#v)),
307        }
308    }
309}
310
311
312impl From<CanonicalCombiningClass> for u16  {
313    fn from(other: CanonicalCombiningClass) -> Self {
314        other.0 as u16
315    }
316}
317
318impl CanonicalCombiningClass {
319    /// Deprecated
320    #[deprecated]
321    pub const ALL_VALUES: &'static [Self] = &[
322        Self::NotReordered,
323        Self::Overlay,
324        Self::HanReading,
325        Self::Nukta,
326        Self::KanaVoicing,
327        Self::Virama,
328        Self::CCC10,
329        Self::CCC11,
330        Self::CCC12,
331        Self::CCC13,
332        Self::CCC14,
333        Self::CCC15,
334        Self::CCC16,
335        Self::CCC17,
336        Self::CCC18,
337        Self::CCC19,
338        Self::CCC20,
339        Self::CCC21,
340        Self::CCC22,
341        Self::CCC23,
342        Self::CCC24,
343        Self::CCC25,
344        Self::CCC26,
345        Self::CCC27,
346        Self::CCC28,
347        Self::CCC29,
348        Self::CCC30,
349        Self::CCC31,
350        Self::CCC32,
351        Self::CCC33,
352        Self::CCC34,
353        Self::CCC35,
354        Self::CCC36,
355        Self::CCC84,
356        Self::CCC91,
357        Self::CCC103,
358        Self::CCC107,
359        Self::CCC118,
360        Self::CCC122,
361        Self::CCC129,
362        Self::CCC130,
363        Self::CCC132,
364        Self::CCC133,
365        Self::AttachedBelowLeft,
366        Self::AttachedBelow,
367        Self::AttachedAbove,
368        Self::AttachedAboveRight,
369        Self::BelowLeft,
370        Self::Below,
371        Self::BelowRight,
372        Self::Left,
373        Self::Right,
374        Self::AboveLeft,
375        Self::Above,
376        Self::AboveRight,
377        Self::DoubleBelow,
378        Self::DoubleAbove,
379        Self::IotaSubscript,
380    ];
381
382    #[cfg(feature = "datagen")]
383    #[doc(hidden)]
384    pub fn names() -> impl Iterator<Item = (&'static str, Self)> {
385        [
386            ("NR", Self::NotReordered),
387            ("OV", Self::Overlay),
388            ("HANR", Self::HanReading),
389            ("NK", Self::Nukta),
390            ("KV", Self::KanaVoicing),
391            ("VR", Self::Virama),
392            ("CCC10", Self::CCC10),
393            ("CCC11", Self::CCC11),
394            ("CCC12", Self::CCC12),
395            ("CCC13", Self::CCC13),
396            ("CCC14", Self::CCC14),
397            ("CCC15", Self::CCC15),
398            ("CCC16", Self::CCC16),
399            ("CCC17", Self::CCC17),
400            ("CCC18", Self::CCC18),
401            ("CCC19", Self::CCC19),
402            ("CCC20", Self::CCC20),
403            ("CCC21", Self::CCC21),
404            ("CCC22", Self::CCC22),
405            ("CCC23", Self::CCC23),
406            ("CCC24", Self::CCC24),
407            ("CCC25", Self::CCC25),
408            ("CCC26", Self::CCC26),
409            ("CCC27", Self::CCC27),
410            ("CCC28", Self::CCC28),
411            ("CCC29", Self::CCC29),
412            ("CCC30", Self::CCC30),
413            ("CCC31", Self::CCC31),
414            ("CCC32", Self::CCC32),
415            ("CCC33", Self::CCC33),
416            ("CCC34", Self::CCC34),
417            ("CCC35", Self::CCC35),
418            ("CCC36", Self::CCC36),
419            ("CCC84", Self::CCC84),
420            ("CCC91", Self::CCC91),
421            ("CCC103", Self::CCC103),
422            ("CCC107", Self::CCC107),
423            ("CCC118", Self::CCC118),
424            ("CCC122", Self::CCC122),
425            ("CCC129", Self::CCC129),
426            ("CCC130", Self::CCC130),
427            ("CCC132", Self::CCC132),
428            ("CCC133", Self::CCC133),
429            ("ATBL", Self::AttachedBelowLeft),
430            ("ATB", Self::AttachedBelow),
431            ("ATA", Self::AttachedAbove),
432            ("ATAR", Self::AttachedAboveRight),
433            ("BL", Self::BelowLeft),
434            ("B", Self::Below),
435            ("BR", Self::BelowRight),
436            ("L", Self::Left),
437            ("R", Self::Right),
438            ("AL", Self::AboveLeft),
439            ("A", Self::Above),
440            ("AR", Self::AboveRight),
441            ("DB", Self::DoubleBelow),
442            ("DA", Self::DoubleAbove),
443            ("IS", Self::IotaSubscript),
444        ].into_iter()
445    }
446}
447
448impl EastAsianWidth {
449    pub const Neutral: Self = Self(0);
450    pub const N: Self = Self::Neutral;
451    pub const Ambiguous: Self = Self(1);
452    pub const A: Self = Self::Ambiguous;
453    pub const Halfwidth: Self = Self(2);
454    pub const H: Self = Self::Halfwidth;
455    pub const Fullwidth: Self = Self(3);
456    pub const F: Self = Self::Fullwidth;
457    pub const Narrow: Self = Self(4);
458    pub const Na: Self = Self::Narrow;
459    pub const Wide: Self = Self(5);
460    pub const W: Self = Self::Wide;
461}
462
463#[cfg(feature = "datagen")]
464impl databake::Bake for EastAsianWidth {
465    fn bake(&self, env: &databake::CrateEnv) -> databake::TokenStream {
466        env.insert("icu_properties");
467        match *self {
468            Self::Neutral => databake::quote!(icu_properties::props::EastAsianWidth::Neutral),
469            Self::Ambiguous => databake::quote!(icu_properties::props::EastAsianWidth::Ambiguous),
470            Self::Halfwidth => databake::quote!(icu_properties::props::EastAsianWidth::Halfwidth),
471            Self::Fullwidth => databake::quote!(icu_properties::props::EastAsianWidth::Fullwidth),
472            Self::Narrow => databake::quote!(icu_properties::props::EastAsianWidth::Narrow),
473            Self::Wide => databake::quote!(icu_properties::props::EastAsianWidth::Wide),
474            Self(v) => databake::quote!(icu_properties::props::EastAsianWidth(#v)),
475        }
476    }
477}
478
479
480impl From<EastAsianWidth> for u16  {
481    fn from(other: EastAsianWidth) -> Self {
482        other.0 as u16
483    }
484}
485
486impl EastAsianWidth {
487    /// Deprecated
488    #[deprecated]
489    pub const ALL_VALUES: &'static [Self] = &[
490        Self::Neutral,
491        Self::Ambiguous,
492        Self::Halfwidth,
493        Self::Fullwidth,
494        Self::Narrow,
495        Self::Wide,
496    ];
497
498    #[cfg(feature = "datagen")]
499    #[doc(hidden)]
500    pub fn names() -> impl Iterator<Item = (&'static str, Self)> {
501        [
502            ("N", Self::Neutral),
503            ("A", Self::Ambiguous),
504            ("H", Self::Halfwidth),
505            ("F", Self::Fullwidth),
506            ("Na", Self::Narrow),
507            ("W", Self::Wide),
508        ].into_iter()
509    }
510}
511
512#[derive(#[automatically_derived]
#[allow(clippy::exhaustive_enums)]
#[allow(missing_docs)]
impl ::core::marker::Copy for GeneralCategory { }Copy, #[automatically_derived]
#[allow(clippy::exhaustive_enums)]
#[allow(missing_docs)]
impl ::core::clone::Clone for GeneralCategory {
    #[inline]
    fn clone(&self) -> GeneralCategory { *self }
}Clone, #[automatically_derived]
#[allow(clippy::exhaustive_enums)]
#[allow(missing_docs)]
impl ::core::cmp::PartialEq for GeneralCategory {
    #[inline]
    fn eq(&self, other: &GeneralCategory) -> bool {
        let __self_discr = ::core::intrinsics::discriminant_value(self);
        let __arg1_discr = ::core::intrinsics::discriminant_value(other);
        __self_discr == __arg1_discr
    }
}PartialEq, #[automatically_derived]
#[allow(clippy::exhaustive_enums)]
#[allow(missing_docs)]
impl ::core::cmp::Eq for GeneralCategory {
    #[inline]
    #[doc(hidden)]
    #[coverage(off)]
    fn assert_fields_are_eq(&self) {}
}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::write_str(f,
            match self {
                GeneralCategory::Unassigned => "Unassigned",
                GeneralCategory::UppercaseLetter => "UppercaseLetter",
                GeneralCategory::LowercaseLetter => "LowercaseLetter",
                GeneralCategory::TitlecaseLetter => "TitlecaseLetter",
                GeneralCategory::ModifierLetter => "ModifierLetter",
                GeneralCategory::OtherLetter => "OtherLetter",
                GeneralCategory::NonspacingMark => "NonspacingMark",
                GeneralCategory::EnclosingMark => "EnclosingMark",
                GeneralCategory::SpacingMark => "SpacingMark",
                GeneralCategory::DecimalNumber => "DecimalNumber",
                GeneralCategory::LetterNumber => "LetterNumber",
                GeneralCategory::OtherNumber => "OtherNumber",
                GeneralCategory::SpaceSeparator => "SpaceSeparator",
                GeneralCategory::LineSeparator => "LineSeparator",
                GeneralCategory::ParagraphSeparator => "ParagraphSeparator",
                GeneralCategory::Control => "Control",
                GeneralCategory::Format => "Format",
                GeneralCategory::PrivateUse => "PrivateUse",
                GeneralCategory::Surrogate => "Surrogate",
                GeneralCategory::DashPunctuation => "DashPunctuation",
                GeneralCategory::OpenPunctuation => "OpenPunctuation",
                GeneralCategory::ClosePunctuation => "ClosePunctuation",
                GeneralCategory::ConnectorPunctuation =>
                    "ConnectorPunctuation",
                GeneralCategory::OtherPunctuation => "OtherPunctuation",
                GeneralCategory::MathSymbol => "MathSymbol",
                GeneralCategory::CurrencySymbol => "CurrencySymbol",
                GeneralCategory::ModifierSymbol => "ModifierSymbol",
                GeneralCategory::OtherSymbol => "OtherSymbol",
                GeneralCategory::InitialPunctuation => "InitialPunctuation",
                GeneralCategory::FinalPunctuation => "FinalPunctuation",
            })
    }
}Debug, #[automatically_derived]
#[allow(clippy::exhaustive_enums)]
#[allow(missing_docs)]
impl ::core::cmp::Ord for GeneralCategory {
    #[inline]
    fn cmp(&self, other: &GeneralCategory) -> ::core::cmp::Ordering {
        let __self_discr = ::core::intrinsics::discriminant_value(self);
        let __arg1_discr = ::core::intrinsics::discriminant_value(other);
        ::core::cmp::Ord::cmp(&__self_discr, &__arg1_discr)
    }
}Ord, #[automatically_derived]
#[allow(clippy::exhaustive_enums)]
#[allow(missing_docs)]
impl ::core::cmp::PartialOrd for GeneralCategory {
    #[inline]
    fn partial_cmp(&self, other: &GeneralCategory)
        -> ::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) {
        let __self_discr = ::core::intrinsics::discriminant_value(self);
        ::core::hash::Hash::hash(&__self_discr, state)
    }
}Hash)]
513#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
514#[allow(clippy::exhaustive_enums)] // this type is stable
515impl 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)]
516#[cfg_attr(not(feature = "alloc"), zerovec::skip_derive(ZeroMapKV))]
517#[repr(u8)]
518#[allow(missing_docs)] // These variants don't need individual documentation.
519pub enum GeneralCategory {
520    Unassigned = 0,
521    UppercaseLetter = 1,
522    LowercaseLetter = 2,
523    TitlecaseLetter = 3,
524    ModifierLetter = 4,
525    OtherLetter = 5,
526    NonspacingMark = 6,
527    EnclosingMark = 7,
528    SpacingMark = 8,
529    DecimalNumber = 9,
530    LetterNumber = 10,
531    OtherNumber = 11,
532    SpaceSeparator = 12,
533    LineSeparator = 13,
534    ParagraphSeparator = 14,
535    Control = 15,
536    Format = 16,
537    PrivateUse = 17,
538    Surrogate = 18,
539    DashPunctuation = 19,
540    OpenPunctuation = 20,
541    ClosePunctuation = 21,
542    ConnectorPunctuation = 22,
543    OtherPunctuation = 23,
544    MathSymbol = 24,
545    CurrencySymbol = 25,
546    ModifierSymbol = 26,
547    OtherSymbol = 27,
548    InitialPunctuation = 28,
549    FinalPunctuation = 29,
550}
551
552impl GeneralCategory {
553    pub const Cn: Self = Self::Unassigned;
554    pub const Lu: Self = Self::UppercaseLetter;
555    pub const Ll: Self = Self::LowercaseLetter;
556    pub const Lt: Self = Self::TitlecaseLetter;
557    pub const Lm: Self = Self::ModifierLetter;
558    pub const Lo: Self = Self::OtherLetter;
559    pub const Mn: Self = Self::NonspacingMark;
560    pub const Me: Self = Self::EnclosingMark;
561    pub const Mc: Self = Self::SpacingMark;
562    pub const Nd: Self = Self::DecimalNumber;
563    pub const Digit: Self = Self::DecimalNumber;
564    pub const Nl: Self = Self::LetterNumber;
565    pub const No: Self = Self::OtherNumber;
566    pub const Zs: Self = Self::SpaceSeparator;
567    pub const Zl: Self = Self::LineSeparator;
568    pub const Zp: Self = Self::ParagraphSeparator;
569    pub const Cc: Self = Self::Control;
570    pub const Cntrl: Self = Self::Control;
571    pub const Cf: Self = Self::Format;
572    pub const Co: Self = Self::PrivateUse;
573    pub const Cs: Self = Self::Surrogate;
574    pub const Pd: Self = Self::DashPunctuation;
575    pub const Ps: Self = Self::OpenPunctuation;
576    pub const Pe: Self = Self::ClosePunctuation;
577    pub const Pc: Self = Self::ConnectorPunctuation;
578    pub const Po: Self = Self::OtherPunctuation;
579    pub const Sm: Self = Self::MathSymbol;
580    pub const Sc: Self = Self::CurrencySymbol;
581    pub const Sk: Self = Self::ModifierSymbol;
582    pub const So: Self = Self::OtherSymbol;
583    pub const Pi: Self = Self::InitialPunctuation;
584    pub const Pf: Self = Self::FinalPunctuation;
585}
586
587#[cfg(feature = "datagen")]
588impl databake::Bake for GeneralCategory {
589    fn bake(&self, env: &databake::CrateEnv) -> databake::TokenStream {
590        env.insert("icu_properties");
591        match *self {
592            Self::Unassigned => databake::quote!(icu_properties::props::GeneralCategory::Unassigned),
593            Self::UppercaseLetter => databake::quote!(icu_properties::props::GeneralCategory::UppercaseLetter),
594            Self::LowercaseLetter => databake::quote!(icu_properties::props::GeneralCategory::LowercaseLetter),
595            Self::TitlecaseLetter => databake::quote!(icu_properties::props::GeneralCategory::TitlecaseLetter),
596            Self::ModifierLetter => databake::quote!(icu_properties::props::GeneralCategory::ModifierLetter),
597            Self::OtherLetter => databake::quote!(icu_properties::props::GeneralCategory::OtherLetter),
598            Self::NonspacingMark => databake::quote!(icu_properties::props::GeneralCategory::NonspacingMark),
599            Self::EnclosingMark => databake::quote!(icu_properties::props::GeneralCategory::EnclosingMark),
600            Self::SpacingMark => databake::quote!(icu_properties::props::GeneralCategory::SpacingMark),
601            Self::DecimalNumber => databake::quote!(icu_properties::props::GeneralCategory::DecimalNumber),
602            Self::LetterNumber => databake::quote!(icu_properties::props::GeneralCategory::LetterNumber),
603            Self::OtherNumber => databake::quote!(icu_properties::props::GeneralCategory::OtherNumber),
604            Self::SpaceSeparator => databake::quote!(icu_properties::props::GeneralCategory::SpaceSeparator),
605            Self::LineSeparator => databake::quote!(icu_properties::props::GeneralCategory::LineSeparator),
606            Self::ParagraphSeparator => databake::quote!(icu_properties::props::GeneralCategory::ParagraphSeparator),
607            Self::Control => databake::quote!(icu_properties::props::GeneralCategory::Control),
608            Self::Format => databake::quote!(icu_properties::props::GeneralCategory::Format),
609            Self::PrivateUse => databake::quote!(icu_properties::props::GeneralCategory::PrivateUse),
610            Self::Surrogate => databake::quote!(icu_properties::props::GeneralCategory::Surrogate),
611            Self::DashPunctuation => databake::quote!(icu_properties::props::GeneralCategory::DashPunctuation),
612            Self::OpenPunctuation => databake::quote!(icu_properties::props::GeneralCategory::OpenPunctuation),
613            Self::ClosePunctuation => databake::quote!(icu_properties::props::GeneralCategory::ClosePunctuation),
614            Self::ConnectorPunctuation => databake::quote!(icu_properties::props::GeneralCategory::ConnectorPunctuation),
615            Self::OtherPunctuation => databake::quote!(icu_properties::props::GeneralCategory::OtherPunctuation),
616            Self::MathSymbol => databake::quote!(icu_properties::props::GeneralCategory::MathSymbol),
617            Self::CurrencySymbol => databake::quote!(icu_properties::props::GeneralCategory::CurrencySymbol),
618            Self::ModifierSymbol => databake::quote!(icu_properties::props::GeneralCategory::ModifierSymbol),
619            Self::OtherSymbol => databake::quote!(icu_properties::props::GeneralCategory::OtherSymbol),
620            Self::InitialPunctuation => databake::quote!(icu_properties::props::GeneralCategory::InitialPunctuation),
621            Self::FinalPunctuation => databake::quote!(icu_properties::props::GeneralCategory::FinalPunctuation),
622        }
623    }
624}
625
626
627impl From<GeneralCategory> for u16  {
628    fn from(other: GeneralCategory) -> Self {
629        other as u16
630    }
631}
632
633impl GeneralCategory {
634    /// Deprecated
635    #[deprecated]
636    pub const ALL_VALUES: &'static [Self] = &[
637        Self::Unassigned,
638        Self::UppercaseLetter,
639        Self::LowercaseLetter,
640        Self::TitlecaseLetter,
641        Self::ModifierLetter,
642        Self::OtherLetter,
643        Self::NonspacingMark,
644        Self::EnclosingMark,
645        Self::SpacingMark,
646        Self::DecimalNumber,
647        Self::LetterNumber,
648        Self::OtherNumber,
649        Self::SpaceSeparator,
650        Self::LineSeparator,
651        Self::ParagraphSeparator,
652        Self::Control,
653        Self::Format,
654        Self::PrivateUse,
655        Self::Surrogate,
656        Self::DashPunctuation,
657        Self::OpenPunctuation,
658        Self::ClosePunctuation,
659        Self::ConnectorPunctuation,
660        Self::OtherPunctuation,
661        Self::MathSymbol,
662        Self::CurrencySymbol,
663        Self::ModifierSymbol,
664        Self::OtherSymbol,
665        Self::InitialPunctuation,
666        Self::FinalPunctuation,
667    ];
668
669    #[cfg(feature = "datagen")]
670    #[doc(hidden)]
671    pub fn names() -> impl Iterator<Item = (&'static str, Self)> {
672        [
673            ("Cn", Self::Unassigned),
674            ("Lu", Self::UppercaseLetter),
675            ("Ll", Self::LowercaseLetter),
676            ("Lt", Self::TitlecaseLetter),
677            ("Lm", Self::ModifierLetter),
678            ("Lo", Self::OtherLetter),
679            ("Mn", Self::NonspacingMark),
680            ("Me", Self::EnclosingMark),
681            ("Mc", Self::SpacingMark),
682            ("Nd", Self::DecimalNumber),
683            ("Nl", Self::LetterNumber),
684            ("No", Self::OtherNumber),
685            ("Zs", Self::SpaceSeparator),
686            ("Zl", Self::LineSeparator),
687            ("Zp", Self::ParagraphSeparator),
688            ("Cc", Self::Control),
689            ("Cf", Self::Format),
690            ("Co", Self::PrivateUse),
691            ("Cs", Self::Surrogate),
692            ("Pd", Self::DashPunctuation),
693            ("Ps", Self::OpenPunctuation),
694            ("Pe", Self::ClosePunctuation),
695            ("Pc", Self::ConnectorPunctuation),
696            ("Po", Self::OtherPunctuation),
697            ("Sm", Self::MathSymbol),
698            ("Sc", Self::CurrencySymbol),
699            ("Sk", Self::ModifierSymbol),
700            ("So", Self::OtherSymbol),
701            ("Pi", Self::InitialPunctuation),
702            ("Pf", Self::FinalPunctuation),
703        ].into_iter()
704    }
705}
706
707impl GraphemeClusterBreak {
708    pub const Other: Self = Self(0);
709    pub const XX: Self = Self::Other;
710    pub const Control: Self = Self(1);
711    pub const CN: Self = Self::Control;
712    pub const CR: Self = Self(2);
713    pub const Extend: Self = Self(3);
714    pub const EX: Self = Self::Extend;
715    pub const L: Self = Self(4);
716    pub const LF: Self = Self(5);
717    pub const LV: Self = Self(6);
718    pub const LVT: Self = Self(7);
719    pub const T: Self = Self(8);
720    pub const V: Self = Self(9);
721    pub const SpacingMark: Self = Self(10);
722    pub const SM: Self = Self::SpacingMark;
723    pub const Prepend: Self = Self(11);
724    pub const PP: Self = Self::Prepend;
725    pub const RegionalIndicator: Self = Self(12);
726    pub const RI: Self = Self::RegionalIndicator;
727    pub const EBase: Self = Self(13);
728    pub const EB: Self = Self::EBase;
729    pub const EBaseGAZ: Self = Self(14);
730    pub const EBG: Self = Self::EBaseGAZ;
731    pub const EModifier: Self = Self(15);
732    pub const EM: Self = Self::EModifier;
733    pub const GlueAfterZwj: Self = Self(16);
734    pub const GAZ: Self = Self::GlueAfterZwj;
735    pub const ZWJ: Self = Self(17);
736}
737
738#[cfg(feature = "datagen")]
739impl databake::Bake for GraphemeClusterBreak {
740    fn bake(&self, env: &databake::CrateEnv) -> databake::TokenStream {
741        env.insert("icu_properties");
742        match *self {
743            Self::Other => databake::quote!(icu_properties::props::GraphemeClusterBreak::Other),
744            Self::Control => databake::quote!(icu_properties::props::GraphemeClusterBreak::Control),
745            Self::CR => databake::quote!(icu_properties::props::GraphemeClusterBreak::CR),
746            Self::Extend => databake::quote!(icu_properties::props::GraphemeClusterBreak::Extend),
747            Self::L => databake::quote!(icu_properties::props::GraphemeClusterBreak::L),
748            Self::LF => databake::quote!(icu_properties::props::GraphemeClusterBreak::LF),
749            Self::LV => databake::quote!(icu_properties::props::GraphemeClusterBreak::LV),
750            Self::LVT => databake::quote!(icu_properties::props::GraphemeClusterBreak::LVT),
751            Self::T => databake::quote!(icu_properties::props::GraphemeClusterBreak::T),
752            Self::V => databake::quote!(icu_properties::props::GraphemeClusterBreak::V),
753            Self::SpacingMark => databake::quote!(icu_properties::props::GraphemeClusterBreak::SpacingMark),
754            Self::Prepend => databake::quote!(icu_properties::props::GraphemeClusterBreak::Prepend),
755            Self::RegionalIndicator => databake::quote!(icu_properties::props::GraphemeClusterBreak::RegionalIndicator),
756            Self::EBase => databake::quote!(icu_properties::props::GraphemeClusterBreak::EBase),
757            Self::EBaseGAZ => databake::quote!(icu_properties::props::GraphemeClusterBreak::EBaseGAZ),
758            Self::EModifier => databake::quote!(icu_properties::props::GraphemeClusterBreak::EModifier),
759            Self::GlueAfterZwj => databake::quote!(icu_properties::props::GraphemeClusterBreak::GlueAfterZwj),
760            Self::ZWJ => databake::quote!(icu_properties::props::GraphemeClusterBreak::ZWJ),
761            Self(v) => databake::quote!(icu_properties::props::GraphemeClusterBreak(#v)),
762        }
763    }
764}
765
766
767impl From<GraphemeClusterBreak> for u16  {
768    fn from(other: GraphemeClusterBreak) -> Self {
769        other.0 as u16
770    }
771}
772
773impl GraphemeClusterBreak {
774    /// Deprecated
775    #[deprecated]
776    pub const ALL_VALUES: &'static [Self] = &[
777        Self::Other,
778        Self::Control,
779        Self::CR,
780        Self::Extend,
781        Self::L,
782        Self::LF,
783        Self::LV,
784        Self::LVT,
785        Self::T,
786        Self::V,
787        Self::SpacingMark,
788        Self::Prepend,
789        Self::RegionalIndicator,
790        Self::EBase,
791        Self::EBaseGAZ,
792        Self::EModifier,
793        Self::GlueAfterZwj,
794        Self::ZWJ,
795    ];
796
797    #[cfg(feature = "datagen")]
798    #[doc(hidden)]
799    pub fn names() -> impl Iterator<Item = (&'static str, Self)> {
800        [
801            ("XX", Self::Other),
802            ("CN", Self::Control),
803            ("CR", Self::CR),
804            ("EX", Self::Extend),
805            ("L", Self::L),
806            ("LF", Self::LF),
807            ("LV", Self::LV),
808            ("LVT", Self::LVT),
809            ("T", Self::T),
810            ("V", Self::V),
811            ("SM", Self::SpacingMark),
812            ("PP", Self::Prepend),
813            ("RI", Self::RegionalIndicator),
814            ("EB", Self::EBase),
815            ("EBG", Self::EBaseGAZ),
816            ("EM", Self::EModifier),
817            ("GAZ", Self::GlueAfterZwj),
818            ("ZWJ", Self::ZWJ),
819        ].into_iter()
820    }
821}
822
823impl HangulSyllableType {
824    pub const NotApplicable: Self = Self(0);
825    pub const NA: Self = Self::NotApplicable;
826    pub const LeadingJamo: Self = Self(1);
827    pub const L: Self = Self::LeadingJamo;
828    pub const VowelJamo: Self = Self(2);
829    pub const V: Self = Self::VowelJamo;
830    pub const TrailingJamo: Self = Self(3);
831    pub const T: Self = Self::TrailingJamo;
832    pub const LVSyllable: Self = Self(4);
833    pub const LV: Self = Self::LVSyllable;
834    pub const LVTSyllable: Self = Self(5);
835    pub const LVT: Self = Self::LVTSyllable;
836}
837
838#[cfg(feature = "datagen")]
839impl databake::Bake for HangulSyllableType {
840    fn bake(&self, env: &databake::CrateEnv) -> databake::TokenStream {
841        env.insert("icu_properties");
842        match *self {
843            Self::NotApplicable => databake::quote!(icu_properties::props::HangulSyllableType::NotApplicable),
844            Self::LeadingJamo => databake::quote!(icu_properties::props::HangulSyllableType::LeadingJamo),
845            Self::VowelJamo => databake::quote!(icu_properties::props::HangulSyllableType::VowelJamo),
846            Self::TrailingJamo => databake::quote!(icu_properties::props::HangulSyllableType::TrailingJamo),
847            Self::LVSyllable => databake::quote!(icu_properties::props::HangulSyllableType::LVSyllable),
848            Self::LVTSyllable => databake::quote!(icu_properties::props::HangulSyllableType::LVTSyllable),
849            Self(v) => databake::quote!(icu_properties::props::HangulSyllableType(#v)),
850        }
851    }
852}
853
854
855impl From<HangulSyllableType> for u16  {
856    fn from(other: HangulSyllableType) -> Self {
857        other.0 as u16
858    }
859}
860
861impl HangulSyllableType {
862    /// Deprecated
863    #[deprecated]
864    pub const ALL_VALUES: &'static [Self] = &[
865        Self::NotApplicable,
866        Self::LeadingJamo,
867        Self::VowelJamo,
868        Self::TrailingJamo,
869        Self::LVSyllable,
870        Self::LVTSyllable,
871    ];
872
873    #[cfg(feature = "datagen")]
874    #[doc(hidden)]
875    pub fn names() -> impl Iterator<Item = (&'static str, Self)> {
876        [
877            ("NA", Self::NotApplicable),
878            ("L", Self::LeadingJamo),
879            ("V", Self::VowelJamo),
880            ("T", Self::TrailingJamo),
881            ("LV", Self::LVSyllable),
882            ("LVT", Self::LVTSyllable),
883        ].into_iter()
884    }
885}
886
887impl IndicConjunctBreak {
888    pub const None: Self = Self(0);
889    pub const Consonant: Self = Self(1);
890    pub const Extend: Self = Self(2);
891    pub const Linker: Self = Self(3);
892}
893
894#[cfg(feature = "datagen")]
895impl databake::Bake for IndicConjunctBreak {
896    fn bake(&self, env: &databake::CrateEnv) -> databake::TokenStream {
897        env.insert("icu_properties");
898        match *self {
899            Self::None => databake::quote!(icu_properties::props::IndicConjunctBreak::None),
900            Self::Consonant => databake::quote!(icu_properties::props::IndicConjunctBreak::Consonant),
901            Self::Extend => databake::quote!(icu_properties::props::IndicConjunctBreak::Extend),
902            Self::Linker => databake::quote!(icu_properties::props::IndicConjunctBreak::Linker),
903            Self(v) => databake::quote!(icu_properties::props::IndicConjunctBreak(#v)),
904        }
905    }
906}
907
908
909impl From<IndicConjunctBreak> for u16  {
910    fn from(other: IndicConjunctBreak) -> Self {
911        other.0 as u16
912    }
913}
914
915impl IndicConjunctBreak {
916    /// Deprecated
917    #[deprecated]
918    pub const ALL_VALUES: &'static [Self] = &[
919        Self::None,
920        Self::Consonant,
921        Self::Extend,
922        Self::Linker,
923    ];
924
925    #[cfg(feature = "datagen")]
926    #[doc(hidden)]
927    pub fn names() -> impl Iterator<Item = (&'static str, Self)> {
928        [
929            ("None", Self::None),
930            ("Consonant", Self::Consonant),
931            ("Extend", Self::Extend),
932            ("Linker", Self::Linker),
933        ].into_iter()
934    }
935}
936
937impl IndicSyllabicCategory {
938    pub const Other: Self = Self(0);
939    pub const Avagraha: Self = Self(1);
940    pub const Bindu: Self = Self(2);
941    pub const BrahmiJoiningNumber: Self = Self(3);
942    pub const CantillationMark: Self = Self(4);
943    pub const Consonant: Self = Self(5);
944    pub const ConsonantDead: Self = Self(6);
945    pub const ConsonantFinal: Self = Self(7);
946    pub const ConsonantHeadLetter: Self = Self(8);
947    pub const ConsonantInitialPostfixed: Self = Self(9);
948    pub const ConsonantKiller: Self = Self(10);
949    pub const ConsonantMedial: Self = Self(11);
950    pub const ConsonantPlaceholder: Self = Self(12);
951    pub const ConsonantPrecedingRepha: Self = Self(13);
952    pub const ConsonantPrefixed: Self = Self(14);
953    pub const ConsonantSubjoined: Self = Self(15);
954    pub const ConsonantSucceedingRepha: Self = Self(16);
955    pub const ConsonantWithStacker: Self = Self(17);
956    pub const GeminationMark: Self = Self(18);
957    pub const InvisibleStacker: Self = Self(19);
958    pub const Joiner: Self = Self(20);
959    pub const ModifyingLetter: Self = Self(21);
960    pub const NonJoiner: Self = Self(22);
961    pub const Nukta: Self = Self(23);
962    pub const Number: Self = Self(24);
963    pub const NumberJoiner: Self = Self(25);
964    pub const PureKiller: Self = Self(26);
965    pub const RegisterShifter: Self = Self(27);
966    pub const SyllableModifier: Self = Self(28);
967    pub const ToneLetter: Self = Self(29);
968    pub const ToneMark: Self = Self(30);
969    pub const Virama: Self = Self(31);
970    pub const Visarga: Self = Self(32);
971    pub const Vowel: Self = Self(33);
972    pub const VowelDependent: Self = Self(34);
973    pub const VowelIndependent: Self = Self(35);
974    pub const ReorderingKiller: Self = Self(36);
975}
976
977#[cfg(feature = "datagen")]
978impl databake::Bake for IndicSyllabicCategory {
979    fn bake(&self, env: &databake::CrateEnv) -> databake::TokenStream {
980        env.insert("icu_properties");
981        match *self {
982            Self::Other => databake::quote!(icu_properties::props::IndicSyllabicCategory::Other),
983            Self::Avagraha => databake::quote!(icu_properties::props::IndicSyllabicCategory::Avagraha),
984            Self::Bindu => databake::quote!(icu_properties::props::IndicSyllabicCategory::Bindu),
985            Self::BrahmiJoiningNumber => databake::quote!(icu_properties::props::IndicSyllabicCategory::BrahmiJoiningNumber),
986            Self::CantillationMark => databake::quote!(icu_properties::props::IndicSyllabicCategory::CantillationMark),
987            Self::Consonant => databake::quote!(icu_properties::props::IndicSyllabicCategory::Consonant),
988            Self::ConsonantDead => databake::quote!(icu_properties::props::IndicSyllabicCategory::ConsonantDead),
989            Self::ConsonantFinal => databake::quote!(icu_properties::props::IndicSyllabicCategory::ConsonantFinal),
990            Self::ConsonantHeadLetter => databake::quote!(icu_properties::props::IndicSyllabicCategory::ConsonantHeadLetter),
991            Self::ConsonantInitialPostfixed => databake::quote!(icu_properties::props::IndicSyllabicCategory::ConsonantInitialPostfixed),
992            Self::ConsonantKiller => databake::quote!(icu_properties::props::IndicSyllabicCategory::ConsonantKiller),
993            Self::ConsonantMedial => databake::quote!(icu_properties::props::IndicSyllabicCategory::ConsonantMedial),
994            Self::ConsonantPlaceholder => databake::quote!(icu_properties::props::IndicSyllabicCategory::ConsonantPlaceholder),
995            Self::ConsonantPrecedingRepha => databake::quote!(icu_properties::props::IndicSyllabicCategory::ConsonantPrecedingRepha),
996            Self::ConsonantPrefixed => databake::quote!(icu_properties::props::IndicSyllabicCategory::ConsonantPrefixed),
997            Self::ConsonantSubjoined => databake::quote!(icu_properties::props::IndicSyllabicCategory::ConsonantSubjoined),
998            Self::ConsonantSucceedingRepha => databake::quote!(icu_properties::props::IndicSyllabicCategory::ConsonantSucceedingRepha),
999            Self::ConsonantWithStacker => databake::quote!(icu_properties::props::IndicSyllabicCategory::ConsonantWithStacker),
1000            Self::GeminationMark => databake::quote!(icu_properties::props::IndicSyllabicCategory::GeminationMark),
1001            Self::InvisibleStacker => databake::quote!(icu_properties::props::IndicSyllabicCategory::InvisibleStacker),
1002            Self::Joiner => databake::quote!(icu_properties::props::IndicSyllabicCategory::Joiner),
1003            Self::ModifyingLetter => databake::quote!(icu_properties::props::IndicSyllabicCategory::ModifyingLetter),
1004            Self::NonJoiner => databake::quote!(icu_properties::props::IndicSyllabicCategory::NonJoiner),
1005            Self::Nukta => databake::quote!(icu_properties::props::IndicSyllabicCategory::Nukta),
1006            Self::Number => databake::quote!(icu_properties::props::IndicSyllabicCategory::Number),
1007            Self::NumberJoiner => databake::quote!(icu_properties::props::IndicSyllabicCategory::NumberJoiner),
1008            Self::PureKiller => databake::quote!(icu_properties::props::IndicSyllabicCategory::PureKiller),
1009            Self::RegisterShifter => databake::quote!(icu_properties::props::IndicSyllabicCategory::RegisterShifter),
1010            Self::SyllableModifier => databake::quote!(icu_properties::props::IndicSyllabicCategory::SyllableModifier),
1011            Self::ToneLetter => databake::quote!(icu_properties::props::IndicSyllabicCategory::ToneLetter),
1012            Self::ToneMark => databake::quote!(icu_properties::props::IndicSyllabicCategory::ToneMark),
1013            Self::Virama => databake::quote!(icu_properties::props::IndicSyllabicCategory::Virama),
1014            Self::Visarga => databake::quote!(icu_properties::props::IndicSyllabicCategory::Visarga),
1015            Self::Vowel => databake::quote!(icu_properties::props::IndicSyllabicCategory::Vowel),
1016            Self::VowelDependent => databake::quote!(icu_properties::props::IndicSyllabicCategory::VowelDependent),
1017            Self::VowelIndependent => databake::quote!(icu_properties::props::IndicSyllabicCategory::VowelIndependent),
1018            Self::ReorderingKiller => databake::quote!(icu_properties::props::IndicSyllabicCategory::ReorderingKiller),
1019            Self(v) => databake::quote!(icu_properties::props::IndicSyllabicCategory(#v)),
1020        }
1021    }
1022}
1023
1024
1025impl From<IndicSyllabicCategory> for u16  {
1026    fn from(other: IndicSyllabicCategory) -> Self {
1027        other.0 as u16
1028    }
1029}
1030
1031impl IndicSyllabicCategory {
1032    /// Deprecated
1033    #[deprecated]
1034    pub const ALL_VALUES: &'static [Self] = &[
1035        Self::Other,
1036        Self::Avagraha,
1037        Self::Bindu,
1038        Self::BrahmiJoiningNumber,
1039        Self::CantillationMark,
1040        Self::Consonant,
1041        Self::ConsonantDead,
1042        Self::ConsonantFinal,
1043        Self::ConsonantHeadLetter,
1044        Self::ConsonantInitialPostfixed,
1045        Self::ConsonantKiller,
1046        Self::ConsonantMedial,
1047        Self::ConsonantPlaceholder,
1048        Self::ConsonantPrecedingRepha,
1049        Self::ConsonantPrefixed,
1050        Self::ConsonantSubjoined,
1051        Self::ConsonantSucceedingRepha,
1052        Self::ConsonantWithStacker,
1053        Self::GeminationMark,
1054        Self::InvisibleStacker,
1055        Self::Joiner,
1056        Self::ModifyingLetter,
1057        Self::NonJoiner,
1058        Self::Nukta,
1059        Self::Number,
1060        Self::NumberJoiner,
1061        Self::PureKiller,
1062        Self::RegisterShifter,
1063        Self::SyllableModifier,
1064        Self::ToneLetter,
1065        Self::ToneMark,
1066        Self::Virama,
1067        Self::Visarga,
1068        Self::Vowel,
1069        Self::VowelDependent,
1070        Self::VowelIndependent,
1071        Self::ReorderingKiller,
1072    ];
1073
1074    #[cfg(feature = "datagen")]
1075    #[doc(hidden)]
1076    pub fn names() -> impl Iterator<Item = (&'static str, Self)> {
1077        [
1078            ("Other", Self::Other),
1079            ("Avagraha", Self::Avagraha),
1080            ("Bindu", Self::Bindu),
1081            ("Brahmi_Joining_Number", Self::BrahmiJoiningNumber),
1082            ("Cantillation_Mark", Self::CantillationMark),
1083            ("Consonant", Self::Consonant),
1084            ("Consonant_Dead", Self::ConsonantDead),
1085            ("Consonant_Final", Self::ConsonantFinal),
1086            ("Consonant_Head_Letter", Self::ConsonantHeadLetter),
1087            ("Consonant_Initial_Postfixed", Self::ConsonantInitialPostfixed),
1088            ("Consonant_Killer", Self::ConsonantKiller),
1089            ("Consonant_Medial", Self::ConsonantMedial),
1090            ("Consonant_Placeholder", Self::ConsonantPlaceholder),
1091            ("Consonant_Preceding_Repha", Self::ConsonantPrecedingRepha),
1092            ("Consonant_Prefixed", Self::ConsonantPrefixed),
1093            ("Consonant_Subjoined", Self::ConsonantSubjoined),
1094            ("Consonant_Succeeding_Repha", Self::ConsonantSucceedingRepha),
1095            ("Consonant_With_Stacker", Self::ConsonantWithStacker),
1096            ("Gemination_Mark", Self::GeminationMark),
1097            ("Invisible_Stacker", Self::InvisibleStacker),
1098            ("Joiner", Self::Joiner),
1099            ("Modifying_Letter", Self::ModifyingLetter),
1100            ("Non_Joiner", Self::NonJoiner),
1101            ("Nukta", Self::Nukta),
1102            ("Number", Self::Number),
1103            ("Number_Joiner", Self::NumberJoiner),
1104            ("Pure_Killer", Self::PureKiller),
1105            ("Register_Shifter", Self::RegisterShifter),
1106            ("Syllable_Modifier", Self::SyllableModifier),
1107            ("Tone_Letter", Self::ToneLetter),
1108            ("Tone_Mark", Self::ToneMark),
1109            ("Virama", Self::Virama),
1110            ("Visarga", Self::Visarga),
1111            ("Vowel", Self::Vowel),
1112            ("Vowel_Dependent", Self::VowelDependent),
1113            ("Vowel_Independent", Self::VowelIndependent),
1114            ("Reordering_Killer", Self::ReorderingKiller),
1115        ].into_iter()
1116    }
1117}
1118
1119impl JoiningGroup {
1120    pub const NoJoiningGroup: Self = Self(0);
1121    pub const Ain: Self = Self(1);
1122    pub const Alaph: Self = Self(2);
1123    pub const Alef: Self = Self(3);
1124    pub const Beh: Self = Self(4);
1125    pub const Beth: Self = Self(5);
1126    pub const Dal: Self = Self(6);
1127    pub const DalathRish: Self = Self(7);
1128    pub const E: Self = Self(8);
1129    pub const Feh: Self = Self(9);
1130    pub const FinalSemkath: Self = Self(10);
1131    pub const Gaf: Self = Self(11);
1132    pub const Gamal: Self = Self(12);
1133    pub const Hah: Self = Self(13);
1134    pub const TehMarbutaGoal: Self = Self(14);
1135    pub const HamzaOnHehGoal: Self = Self::TehMarbutaGoal;
1136    pub const He: Self = Self(15);
1137    pub const Heh: Self = Self(16);
1138    pub const HehGoal: Self = Self(17);
1139    pub const Heth: Self = Self(18);
1140    pub const Kaf: Self = Self(19);
1141    pub const Kaph: Self = Self(20);
1142    pub const KnottedHeh: Self = Self(21);
1143    pub const Lam: Self = Self(22);
1144    pub const Lamadh: Self = Self(23);
1145    pub const Meem: Self = Self(24);
1146    pub const Mim: Self = Self(25);
1147    pub const Noon: Self = Self(26);
1148    pub const Nun: Self = Self(27);
1149    pub const Pe: Self = Self(28);
1150    pub const Qaf: Self = Self(29);
1151    pub const Qaph: Self = Self(30);
1152    pub const Reh: Self = Self(31);
1153    pub const ReversedPe: Self = Self(32);
1154    pub const Sad: Self = Self(33);
1155    pub const Sadhe: Self = Self(34);
1156    pub const Seen: Self = Self(35);
1157    pub const Semkath: Self = Self(36);
1158    pub const Shin: Self = Self(37);
1159    pub const SwashKaf: Self = Self(38);
1160    pub const SyriacWaw: Self = Self(39);
1161    pub const Tah: Self = Self(40);
1162    pub const Taw: Self = Self(41);
1163    pub const TehMarbuta: Self = Self(42);
1164    pub const Teth: Self = Self(43);
1165    pub const Waw: Self = Self(44);
1166    pub const Yeh: Self = Self(45);
1167    pub const YehBarree: Self = Self(46);
1168    pub const YehWithTail: Self = Self(47);
1169    pub const Yudh: Self = Self(48);
1170    pub const YudhHe: Self = Self(49);
1171    pub const Zain: Self = Self(50);
1172    pub const Fe: Self = Self(51);
1173    pub const Khaph: Self = Self(52);
1174    pub const Zhain: Self = Self(53);
1175    pub const BurushaskiYehBarree: Self = Self(54);
1176    pub const FarsiYeh: Self = Self(55);
1177    pub const Nya: Self = Self(56);
1178    pub const RohingyaYeh: Self = Self(57);
1179    pub const ManichaeanAleph: Self = Self(58);
1180    pub const ManichaeanAyin: Self = Self(59);
1181    pub const ManichaeanBeth: Self = Self(60);
1182    pub const ManichaeanDaleth: Self = Self(61);
1183    pub const ManichaeanDhamedh: Self = Self(62);
1184    pub const ManichaeanFive: Self = Self(63);
1185    pub const ManichaeanGimel: Self = Self(64);
1186    pub const ManichaeanHeth: Self = Self(65);
1187    pub const ManichaeanHundred: Self = Self(66);
1188    pub const ManichaeanKaph: Self = Self(67);
1189    pub const ManichaeanLamedh: Self = Self(68);
1190    pub const ManichaeanMem: Self = Self(69);
1191    pub const ManichaeanNun: Self = Self(70);
1192    pub const ManichaeanOne: Self = Self(71);
1193    pub const ManichaeanPe: Self = Self(72);
1194    pub const ManichaeanQoph: Self = Self(73);
1195    pub const ManichaeanResh: Self = Self(74);
1196    pub const ManichaeanSadhe: Self = Self(75);
1197    pub const ManichaeanSamekh: Self = Self(76);
1198    pub const ManichaeanTaw: Self = Self(77);
1199    pub const ManichaeanTen: Self = Self(78);
1200    pub const ManichaeanTeth: Self = Self(79);
1201    pub const ManichaeanThamedh: Self = Self(80);
1202    pub const ManichaeanTwenty: Self = Self(81);
1203    pub const ManichaeanWaw: Self = Self(82);
1204    pub const ManichaeanYodh: Self = Self(83);
1205    pub const ManichaeanZayin: Self = Self(84);
1206    pub const StraightWaw: Self = Self(85);
1207    pub const AfricanFeh: Self = Self(86);
1208    pub const AfricanNoon: Self = Self(87);
1209    pub const AfricanQaf: Self = Self(88);
1210    pub const MalayalamBha: Self = Self(89);
1211    pub const MalayalamJa: Self = Self(90);
1212    pub const MalayalamLla: Self = Self(91);
1213    pub const MalayalamLlla: Self = Self(92);
1214    pub const MalayalamNga: Self = Self(93);
1215    pub const MalayalamNna: Self = Self(94);
1216    pub const MalayalamNnna: Self = Self(95);
1217    pub const MalayalamNya: Self = Self(96);
1218    pub const MalayalamRa: Self = Self(97);
1219    pub const MalayalamSsa: Self = Self(98);
1220    pub const MalayalamTta: Self = Self(99);
1221    pub const HanifiRohingyaKinnaYa: Self = Self(100);
1222    pub const HanifiRohingyaPa: Self = Self(101);
1223    pub const ThinYeh: Self = Self(102);
1224    pub const VerticalTail: Self = Self(103);
1225    pub const KashmiriYeh: Self = Self(104);
1226    pub const ThinNoon: Self = Self(105);
1227}
1228
1229#[cfg(feature = "datagen")]
1230impl databake::Bake for JoiningGroup {
1231    fn bake(&self, env: &databake::CrateEnv) -> databake::TokenStream {
1232        env.insert("icu_properties");
1233        match *self {
1234            Self::NoJoiningGroup => databake::quote!(icu_properties::props::JoiningGroup::NoJoiningGroup),
1235            Self::Ain => databake::quote!(icu_properties::props::JoiningGroup::Ain),
1236            Self::Alaph => databake::quote!(icu_properties::props::JoiningGroup::Alaph),
1237            Self::Alef => databake::quote!(icu_properties::props::JoiningGroup::Alef),
1238            Self::Beh => databake::quote!(icu_properties::props::JoiningGroup::Beh),
1239            Self::Beth => databake::quote!(icu_properties::props::JoiningGroup::Beth),
1240            Self::Dal => databake::quote!(icu_properties::props::JoiningGroup::Dal),
1241            Self::DalathRish => databake::quote!(icu_properties::props::JoiningGroup::DalathRish),
1242            Self::E => databake::quote!(icu_properties::props::JoiningGroup::E),
1243            Self::Feh => databake::quote!(icu_properties::props::JoiningGroup::Feh),
1244            Self::FinalSemkath => databake::quote!(icu_properties::props::JoiningGroup::FinalSemkath),
1245            Self::Gaf => databake::quote!(icu_properties::props::JoiningGroup::Gaf),
1246            Self::Gamal => databake::quote!(icu_properties::props::JoiningGroup::Gamal),
1247            Self::Hah => databake::quote!(icu_properties::props::JoiningGroup::Hah),
1248            Self::TehMarbutaGoal => databake::quote!(icu_properties::props::JoiningGroup::TehMarbutaGoal),
1249            Self::He => databake::quote!(icu_properties::props::JoiningGroup::He),
1250            Self::Heh => databake::quote!(icu_properties::props::JoiningGroup::Heh),
1251            Self::HehGoal => databake::quote!(icu_properties::props::JoiningGroup::HehGoal),
1252            Self::Heth => databake::quote!(icu_properties::props::JoiningGroup::Heth),
1253            Self::Kaf => databake::quote!(icu_properties::props::JoiningGroup::Kaf),
1254            Self::Kaph => databake::quote!(icu_properties::props::JoiningGroup::Kaph),
1255            Self::KnottedHeh => databake::quote!(icu_properties::props::JoiningGroup::KnottedHeh),
1256            Self::Lam => databake::quote!(icu_properties::props::JoiningGroup::Lam),
1257            Self::Lamadh => databake::quote!(icu_properties::props::JoiningGroup::Lamadh),
1258            Self::Meem => databake::quote!(icu_properties::props::JoiningGroup::Meem),
1259            Self::Mim => databake::quote!(icu_properties::props::JoiningGroup::Mim),
1260            Self::Noon => databake::quote!(icu_properties::props::JoiningGroup::Noon),
1261            Self::Nun => databake::quote!(icu_properties::props::JoiningGroup::Nun),
1262            Self::Pe => databake::quote!(icu_properties::props::JoiningGroup::Pe),
1263            Self::Qaf => databake::quote!(icu_properties::props::JoiningGroup::Qaf),
1264            Self::Qaph => databake::quote!(icu_properties::props::JoiningGroup::Qaph),
1265            Self::Reh => databake::quote!(icu_properties::props::JoiningGroup::Reh),
1266            Self::ReversedPe => databake::quote!(icu_properties::props::JoiningGroup::ReversedPe),
1267            Self::Sad => databake::quote!(icu_properties::props::JoiningGroup::Sad),
1268            Self::Sadhe => databake::quote!(icu_properties::props::JoiningGroup::Sadhe),
1269            Self::Seen => databake::quote!(icu_properties::props::JoiningGroup::Seen),
1270            Self::Semkath => databake::quote!(icu_properties::props::JoiningGroup::Semkath),
1271            Self::Shin => databake::quote!(icu_properties::props::JoiningGroup::Shin),
1272            Self::SwashKaf => databake::quote!(icu_properties::props::JoiningGroup::SwashKaf),
1273            Self::SyriacWaw => databake::quote!(icu_properties::props::JoiningGroup::SyriacWaw),
1274            Self::Tah => databake::quote!(icu_properties::props::JoiningGroup::Tah),
1275            Self::Taw => databake::quote!(icu_properties::props::JoiningGroup::Taw),
1276            Self::TehMarbuta => databake::quote!(icu_properties::props::JoiningGroup::TehMarbuta),
1277            Self::Teth => databake::quote!(icu_properties::props::JoiningGroup::Teth),
1278            Self::Waw => databake::quote!(icu_properties::props::JoiningGroup::Waw),
1279            Self::Yeh => databake::quote!(icu_properties::props::JoiningGroup::Yeh),
1280            Self::YehBarree => databake::quote!(icu_properties::props::JoiningGroup::YehBarree),
1281            Self::YehWithTail => databake::quote!(icu_properties::props::JoiningGroup::YehWithTail),
1282            Self::Yudh => databake::quote!(icu_properties::props::JoiningGroup::Yudh),
1283            Self::YudhHe => databake::quote!(icu_properties::props::JoiningGroup::YudhHe),
1284            Self::Zain => databake::quote!(icu_properties::props::JoiningGroup::Zain),
1285            Self::Fe => databake::quote!(icu_properties::props::JoiningGroup::Fe),
1286            Self::Khaph => databake::quote!(icu_properties::props::JoiningGroup::Khaph),
1287            Self::Zhain => databake::quote!(icu_properties::props::JoiningGroup::Zhain),
1288            Self::BurushaskiYehBarree => databake::quote!(icu_properties::props::JoiningGroup::BurushaskiYehBarree),
1289            Self::FarsiYeh => databake::quote!(icu_properties::props::JoiningGroup::FarsiYeh),
1290            Self::Nya => databake::quote!(icu_properties::props::JoiningGroup::Nya),
1291            Self::RohingyaYeh => databake::quote!(icu_properties::props::JoiningGroup::RohingyaYeh),
1292            Self::ManichaeanAleph => databake::quote!(icu_properties::props::JoiningGroup::ManichaeanAleph),
1293            Self::ManichaeanAyin => databake::quote!(icu_properties::props::JoiningGroup::ManichaeanAyin),
1294            Self::ManichaeanBeth => databake::quote!(icu_properties::props::JoiningGroup::ManichaeanBeth),
1295            Self::ManichaeanDaleth => databake::quote!(icu_properties::props::JoiningGroup::ManichaeanDaleth),
1296            Self::ManichaeanDhamedh => databake::quote!(icu_properties::props::JoiningGroup::ManichaeanDhamedh),
1297            Self::ManichaeanFive => databake::quote!(icu_properties::props::JoiningGroup::ManichaeanFive),
1298            Self::ManichaeanGimel => databake::quote!(icu_properties::props::JoiningGroup::ManichaeanGimel),
1299            Self::ManichaeanHeth => databake::quote!(icu_properties::props::JoiningGroup::ManichaeanHeth),
1300            Self::ManichaeanHundred => databake::quote!(icu_properties::props::JoiningGroup::ManichaeanHundred),
1301            Self::ManichaeanKaph => databake::quote!(icu_properties::props::JoiningGroup::ManichaeanKaph),
1302            Self::ManichaeanLamedh => databake::quote!(icu_properties::props::JoiningGroup::ManichaeanLamedh),
1303            Self::ManichaeanMem => databake::quote!(icu_properties::props::JoiningGroup::ManichaeanMem),
1304            Self::ManichaeanNun => databake::quote!(icu_properties::props::JoiningGroup::ManichaeanNun),
1305            Self::ManichaeanOne => databake::quote!(icu_properties::props::JoiningGroup::ManichaeanOne),
1306            Self::ManichaeanPe => databake::quote!(icu_properties::props::JoiningGroup::ManichaeanPe),
1307            Self::ManichaeanQoph => databake::quote!(icu_properties::props::JoiningGroup::ManichaeanQoph),
1308            Self::ManichaeanResh => databake::quote!(icu_properties::props::JoiningGroup::ManichaeanResh),
1309            Self::ManichaeanSadhe => databake::quote!(icu_properties::props::JoiningGroup::ManichaeanSadhe),
1310            Self::ManichaeanSamekh => databake::quote!(icu_properties::props::JoiningGroup::ManichaeanSamekh),
1311            Self::ManichaeanTaw => databake::quote!(icu_properties::props::JoiningGroup::ManichaeanTaw),
1312            Self::ManichaeanTen => databake::quote!(icu_properties::props::JoiningGroup::ManichaeanTen),
1313            Self::ManichaeanTeth => databake::quote!(icu_properties::props::JoiningGroup::ManichaeanTeth),
1314            Self::ManichaeanThamedh => databake::quote!(icu_properties::props::JoiningGroup::ManichaeanThamedh),
1315            Self::ManichaeanTwenty => databake::quote!(icu_properties::props::JoiningGroup::ManichaeanTwenty),
1316            Self::ManichaeanWaw => databake::quote!(icu_properties::props::JoiningGroup::ManichaeanWaw),
1317            Self::ManichaeanYodh => databake::quote!(icu_properties::props::JoiningGroup::ManichaeanYodh),
1318            Self::ManichaeanZayin => databake::quote!(icu_properties::props::JoiningGroup::ManichaeanZayin),
1319            Self::StraightWaw => databake::quote!(icu_properties::props::JoiningGroup::StraightWaw),
1320            Self::AfricanFeh => databake::quote!(icu_properties::props::JoiningGroup::AfricanFeh),
1321            Self::AfricanNoon => databake::quote!(icu_properties::props::JoiningGroup::AfricanNoon),
1322            Self::AfricanQaf => databake::quote!(icu_properties::props::JoiningGroup::AfricanQaf),
1323            Self::MalayalamBha => databake::quote!(icu_properties::props::JoiningGroup::MalayalamBha),
1324            Self::MalayalamJa => databake::quote!(icu_properties::props::JoiningGroup::MalayalamJa),
1325            Self::MalayalamLla => databake::quote!(icu_properties::props::JoiningGroup::MalayalamLla),
1326            Self::MalayalamLlla => databake::quote!(icu_properties::props::JoiningGroup::MalayalamLlla),
1327            Self::MalayalamNga => databake::quote!(icu_properties::props::JoiningGroup::MalayalamNga),
1328            Self::MalayalamNna => databake::quote!(icu_properties::props::JoiningGroup::MalayalamNna),
1329            Self::MalayalamNnna => databake::quote!(icu_properties::props::JoiningGroup::MalayalamNnna),
1330            Self::MalayalamNya => databake::quote!(icu_properties::props::JoiningGroup::MalayalamNya),
1331            Self::MalayalamRa => databake::quote!(icu_properties::props::JoiningGroup::MalayalamRa),
1332            Self::MalayalamSsa => databake::quote!(icu_properties::props::JoiningGroup::MalayalamSsa),
1333            Self::MalayalamTta => databake::quote!(icu_properties::props::JoiningGroup::MalayalamTta),
1334            Self::HanifiRohingyaKinnaYa => databake::quote!(icu_properties::props::JoiningGroup::HanifiRohingyaKinnaYa),
1335            Self::HanifiRohingyaPa => databake::quote!(icu_properties::props::JoiningGroup::HanifiRohingyaPa),
1336            Self::ThinYeh => databake::quote!(icu_properties::props::JoiningGroup::ThinYeh),
1337            Self::VerticalTail => databake::quote!(icu_properties::props::JoiningGroup::VerticalTail),
1338            Self::KashmiriYeh => databake::quote!(icu_properties::props::JoiningGroup::KashmiriYeh),
1339            Self::ThinNoon => databake::quote!(icu_properties::props::JoiningGroup::ThinNoon),
1340            Self(v) => databake::quote!(icu_properties::props::JoiningGroup(#v)),
1341        }
1342    }
1343}
1344
1345
1346impl From<JoiningGroup> for u16  {
1347    fn from(other: JoiningGroup) -> Self {
1348        other.0 as u16
1349    }
1350}
1351
1352impl JoiningGroup {
1353    /// Deprecated
1354    #[deprecated]
1355    pub const ALL_VALUES: &'static [Self] = &[
1356        Self::NoJoiningGroup,
1357        Self::Ain,
1358        Self::Alaph,
1359        Self::Alef,
1360        Self::Beh,
1361        Self::Beth,
1362        Self::Dal,
1363        Self::DalathRish,
1364        Self::E,
1365        Self::Feh,
1366        Self::FinalSemkath,
1367        Self::Gaf,
1368        Self::Gamal,
1369        Self::Hah,
1370        Self::TehMarbutaGoal,
1371        Self::He,
1372        Self::Heh,
1373        Self::HehGoal,
1374        Self::Heth,
1375        Self::Kaf,
1376        Self::Kaph,
1377        Self::KnottedHeh,
1378        Self::Lam,
1379        Self::Lamadh,
1380        Self::Meem,
1381        Self::Mim,
1382        Self::Noon,
1383        Self::Nun,
1384        Self::Pe,
1385        Self::Qaf,
1386        Self::Qaph,
1387        Self::Reh,
1388        Self::ReversedPe,
1389        Self::Sad,
1390        Self::Sadhe,
1391        Self::Seen,
1392        Self::Semkath,
1393        Self::Shin,
1394        Self::SwashKaf,
1395        Self::SyriacWaw,
1396        Self::Tah,
1397        Self::Taw,
1398        Self::TehMarbuta,
1399        Self::Teth,
1400        Self::Waw,
1401        Self::Yeh,
1402        Self::YehBarree,
1403        Self::YehWithTail,
1404        Self::Yudh,
1405        Self::YudhHe,
1406        Self::Zain,
1407        Self::Fe,
1408        Self::Khaph,
1409        Self::Zhain,
1410        Self::BurushaskiYehBarree,
1411        Self::FarsiYeh,
1412        Self::Nya,
1413        Self::RohingyaYeh,
1414        Self::ManichaeanAleph,
1415        Self::ManichaeanAyin,
1416        Self::ManichaeanBeth,
1417        Self::ManichaeanDaleth,
1418        Self::ManichaeanDhamedh,
1419        Self::ManichaeanFive,
1420        Self::ManichaeanGimel,
1421        Self::ManichaeanHeth,
1422        Self::ManichaeanHundred,
1423        Self::ManichaeanKaph,
1424        Self::ManichaeanLamedh,
1425        Self::ManichaeanMem,
1426        Self::ManichaeanNun,
1427        Self::ManichaeanOne,
1428        Self::ManichaeanPe,
1429        Self::ManichaeanQoph,
1430        Self::ManichaeanResh,
1431        Self::ManichaeanSadhe,
1432        Self::ManichaeanSamekh,
1433        Self::ManichaeanTaw,
1434        Self::ManichaeanTen,
1435        Self::ManichaeanTeth,
1436        Self::ManichaeanThamedh,
1437        Self::ManichaeanTwenty,
1438        Self::ManichaeanWaw,
1439        Self::ManichaeanYodh,
1440        Self::ManichaeanZayin,
1441        Self::StraightWaw,
1442        Self::AfricanFeh,
1443        Self::AfricanNoon,
1444        Self::AfricanQaf,
1445        Self::MalayalamBha,
1446        Self::MalayalamJa,
1447        Self::MalayalamLla,
1448        Self::MalayalamLlla,
1449        Self::MalayalamNga,
1450        Self::MalayalamNna,
1451        Self::MalayalamNnna,
1452        Self::MalayalamNya,
1453        Self::MalayalamRa,
1454        Self::MalayalamSsa,
1455        Self::MalayalamTta,
1456        Self::HanifiRohingyaKinnaYa,
1457        Self::HanifiRohingyaPa,
1458        Self::ThinYeh,
1459        Self::VerticalTail,
1460        Self::KashmiriYeh,
1461        Self::ThinNoon,
1462    ];
1463
1464    #[cfg(feature = "datagen")]
1465    #[doc(hidden)]
1466    pub fn names() -> impl Iterator<Item = (&'static str, Self)> {
1467        [
1468            ("No_Joining_Group", Self::NoJoiningGroup),
1469            ("Ain", Self::Ain),
1470            ("Alaph", Self::Alaph),
1471            ("Alef", Self::Alef),
1472            ("Beh", Self::Beh),
1473            ("Beth", Self::Beth),
1474            ("Dal", Self::Dal),
1475            ("Dalath_Rish", Self::DalathRish),
1476            ("E", Self::E),
1477            ("Feh", Self::Feh),
1478            ("Final_Semkath", Self::FinalSemkath),
1479            ("Gaf", Self::Gaf),
1480            ("Gamal", Self::Gamal),
1481            ("Hah", Self::Hah),
1482            ("Teh_Marbuta_Goal", Self::TehMarbutaGoal),
1483            ("He", Self::He),
1484            ("Heh", Self::Heh),
1485            ("Heh_Goal", Self::HehGoal),
1486            ("Heth", Self::Heth),
1487            ("Kaf", Self::Kaf),
1488            ("Kaph", Self::Kaph),
1489            ("Knotted_Heh", Self::KnottedHeh),
1490            ("Lam", Self::Lam),
1491            ("Lamadh", Self::Lamadh),
1492            ("Meem", Self::Meem),
1493            ("Mim", Self::Mim),
1494            ("Noon", Self::Noon),
1495            ("Nun", Self::Nun),
1496            ("Pe", Self::Pe),
1497            ("Qaf", Self::Qaf),
1498            ("Qaph", Self::Qaph),
1499            ("Reh", Self::Reh),
1500            ("Reversed_Pe", Self::ReversedPe),
1501            ("Sad", Self::Sad),
1502            ("Sadhe", Self::Sadhe),
1503            ("Seen", Self::Seen),
1504            ("Semkath", Self::Semkath),
1505            ("Shin", Self::Shin),
1506            ("Swash_Kaf", Self::SwashKaf),
1507            ("Syriac_Waw", Self::SyriacWaw),
1508            ("Tah", Self::Tah),
1509            ("Taw", Self::Taw),
1510            ("Teh_Marbuta", Self::TehMarbuta),
1511            ("Teth", Self::Teth),
1512            ("Waw", Self::Waw),
1513            ("Yeh", Self::Yeh),
1514            ("Yeh_Barree", Self::YehBarree),
1515            ("Yeh_With_Tail", Self::YehWithTail),
1516            ("Yudh", Self::Yudh),
1517            ("Yudh_He", Self::YudhHe),
1518            ("Zain", Self::Zain),
1519            ("Fe", Self::Fe),
1520            ("Khaph", Self::Khaph),
1521            ("Zhain", Self::Zhain),
1522            ("Burushaski_Yeh_Barree", Self::BurushaskiYehBarree),
1523            ("Farsi_Yeh", Self::FarsiYeh),
1524            ("Nya", Self::Nya),
1525            ("Rohingya_Yeh", Self::RohingyaYeh),
1526            ("Manichaean_Aleph", Self::ManichaeanAleph),
1527            ("Manichaean_Ayin", Self::ManichaeanAyin),
1528            ("Manichaean_Beth", Self::ManichaeanBeth),
1529            ("Manichaean_Daleth", Self::ManichaeanDaleth),
1530            ("Manichaean_Dhamedh", Self::ManichaeanDhamedh),
1531            ("Manichaean_Five", Self::ManichaeanFive),
1532            ("Manichaean_Gimel", Self::ManichaeanGimel),
1533            ("Manichaean_Heth", Self::ManichaeanHeth),
1534            ("Manichaean_Hundred", Self::ManichaeanHundred),
1535            ("Manichaean_Kaph", Self::ManichaeanKaph),
1536            ("Manichaean_Lamedh", Self::ManichaeanLamedh),
1537            ("Manichaean_Mem", Self::ManichaeanMem),
1538            ("Manichaean_Nun", Self::ManichaeanNun),
1539            ("Manichaean_One", Self::ManichaeanOne),
1540            ("Manichaean_Pe", Self::ManichaeanPe),
1541            ("Manichaean_Qoph", Self::ManichaeanQoph),
1542            ("Manichaean_Resh", Self::ManichaeanResh),
1543            ("Manichaean_Sadhe", Self::ManichaeanSadhe),
1544            ("Manichaean_Samekh", Self::ManichaeanSamekh),
1545            ("Manichaean_Taw", Self::ManichaeanTaw),
1546            ("Manichaean_Ten", Self::ManichaeanTen),
1547            ("Manichaean_Teth", Self::ManichaeanTeth),
1548            ("Manichaean_Thamedh", Self::ManichaeanThamedh),
1549            ("Manichaean_Twenty", Self::ManichaeanTwenty),
1550            ("Manichaean_Waw", Self::ManichaeanWaw),
1551            ("Manichaean_Yodh", Self::ManichaeanYodh),
1552            ("Manichaean_Zayin", Self::ManichaeanZayin),
1553            ("Straight_Waw", Self::StraightWaw),
1554            ("African_Feh", Self::AfricanFeh),
1555            ("African_Noon", Self::AfricanNoon),
1556            ("African_Qaf", Self::AfricanQaf),
1557            ("Malayalam_Bha", Self::MalayalamBha),
1558            ("Malayalam_Ja", Self::MalayalamJa),
1559            ("Malayalam_Lla", Self::MalayalamLla),
1560            ("Malayalam_Llla", Self::MalayalamLlla),
1561            ("Malayalam_Nga", Self::MalayalamNga),
1562            ("Malayalam_Nna", Self::MalayalamNna),
1563            ("Malayalam_Nnna", Self::MalayalamNnna),
1564            ("Malayalam_Nya", Self::MalayalamNya),
1565            ("Malayalam_Ra", Self::MalayalamRa),
1566            ("Malayalam_Ssa", Self::MalayalamSsa),
1567            ("Malayalam_Tta", Self::MalayalamTta),
1568            ("Hanifi_Rohingya_Kinna_Ya", Self::HanifiRohingyaKinnaYa),
1569            ("Hanifi_Rohingya_Pa", Self::HanifiRohingyaPa),
1570            ("Thin_Yeh", Self::ThinYeh),
1571            ("Vertical_Tail", Self::VerticalTail),
1572            ("Kashmiri_Yeh", Self::KashmiriYeh),
1573            ("Thin_Noon", Self::ThinNoon),
1574        ].into_iter()
1575    }
1576}
1577
1578impl JoiningType {
1579    pub const NonJoining: Self = Self(0);
1580    pub const U: Self = Self::NonJoining;
1581    pub const JoinCausing: Self = Self(1);
1582    pub const C: Self = Self::JoinCausing;
1583    pub const DualJoining: Self = Self(2);
1584    pub const D: Self = Self::DualJoining;
1585    pub const LeftJoining: Self = Self(3);
1586    pub const L: Self = Self::LeftJoining;
1587    pub const RightJoining: Self = Self(4);
1588    pub const R: Self = Self::RightJoining;
1589    pub const Transparent: Self = Self(5);
1590    pub const T: Self = Self::Transparent;
1591}
1592
1593#[cfg(feature = "datagen")]
1594impl databake::Bake for JoiningType {
1595    fn bake(&self, env: &databake::CrateEnv) -> databake::TokenStream {
1596        env.insert("icu_properties");
1597        match *self {
1598            Self::NonJoining => databake::quote!(icu_properties::props::JoiningType::NonJoining),
1599            Self::JoinCausing => databake::quote!(icu_properties::props::JoiningType::JoinCausing),
1600            Self::DualJoining => databake::quote!(icu_properties::props::JoiningType::DualJoining),
1601            Self::LeftJoining => databake::quote!(icu_properties::props::JoiningType::LeftJoining),
1602            Self::RightJoining => databake::quote!(icu_properties::props::JoiningType::RightJoining),
1603            Self::Transparent => databake::quote!(icu_properties::props::JoiningType::Transparent),
1604            Self(v) => databake::quote!(icu_properties::props::JoiningType(#v)),
1605        }
1606    }
1607}
1608
1609
1610impl From<JoiningType> for u16  {
1611    fn from(other: JoiningType) -> Self {
1612        other.0 as u16
1613    }
1614}
1615
1616impl JoiningType {
1617    /// Deprecated
1618    #[deprecated]
1619    pub const ALL_VALUES: &'static [Self] = &[
1620        Self::NonJoining,
1621        Self::JoinCausing,
1622        Self::DualJoining,
1623        Self::LeftJoining,
1624        Self::RightJoining,
1625        Self::Transparent,
1626    ];
1627
1628    #[cfg(feature = "datagen")]
1629    #[doc(hidden)]
1630    pub fn names() -> impl Iterator<Item = (&'static str, Self)> {
1631        [
1632            ("U", Self::NonJoining),
1633            ("C", Self::JoinCausing),
1634            ("D", Self::DualJoining),
1635            ("L", Self::LeftJoining),
1636            ("R", Self::RightJoining),
1637            ("T", Self::Transparent),
1638        ].into_iter()
1639    }
1640}
1641
1642impl LineBreak {
1643    pub const Unknown: Self = Self(0);
1644    pub const XX: Self = Self::Unknown;
1645    pub const Ambiguous: Self = Self(1);
1646    pub const AI: Self = Self::Ambiguous;
1647    pub const Alphabetic: Self = Self(2);
1648    pub const AL: Self = Self::Alphabetic;
1649    pub const BreakBoth: Self = Self(3);
1650    pub const B2: Self = Self::BreakBoth;
1651    pub const BreakAfter: Self = Self(4);
1652    pub const BA: Self = Self::BreakAfter;
1653    pub const BreakBefore: Self = Self(5);
1654    pub const BB: Self = Self::BreakBefore;
1655    pub const MandatoryBreak: Self = Self(6);
1656    pub const BK: Self = Self::MandatoryBreak;
1657    pub const ContingentBreak: Self = Self(7);
1658    pub const CB: Self = Self::ContingentBreak;
1659    pub const ClosePunctuation: Self = Self(8);
1660    pub const CL: Self = Self::ClosePunctuation;
1661    pub const CombiningMark: Self = Self(9);
1662    pub const CM: Self = Self::CombiningMark;
1663    pub const CarriageReturn: Self = Self(10);
1664    pub const CR: Self = Self::CarriageReturn;
1665    pub const Exclamation: Self = Self(11);
1666    pub const EX: Self = Self::Exclamation;
1667    pub const Glue: Self = Self(12);
1668    pub const GL: Self = Self::Glue;
1669    pub const Hyphen: Self = Self(13);
1670    pub const HY: Self = Self::Hyphen;
1671    pub const Ideographic: Self = Self(14);
1672    pub const ID: Self = Self::Ideographic;
1673    pub const Inseparable: Self = Self(15);
1674    pub const IN: Self = Self::Inseparable;
1675    pub const Inseperable: Self = Self::Inseparable;
1676    pub const InfixNumeric: Self = Self(16);
1677    pub const IS: Self = Self::InfixNumeric;
1678    pub const LineFeed: Self = Self(17);
1679    pub const LF: Self = Self::LineFeed;
1680    pub const Nonstarter: Self = Self(18);
1681    pub const NS: Self = Self::Nonstarter;
1682    pub const Numeric: Self = Self(19);
1683    pub const NU: Self = Self::Numeric;
1684    pub const OpenPunctuation: Self = Self(20);
1685    pub const OP: Self = Self::OpenPunctuation;
1686    pub const PostfixNumeric: Self = Self(21);
1687    pub const PO: Self = Self::PostfixNumeric;
1688    pub const PrefixNumeric: Self = Self(22);
1689    pub const PR: Self = Self::PrefixNumeric;
1690    pub const Quotation: Self = Self(23);
1691    pub const QU: Self = Self::Quotation;
1692    pub const ComplexContext: Self = Self(24);
1693    pub const SA: Self = Self::ComplexContext;
1694    pub const Surrogate: Self = Self(25);
1695    pub const SG: Self = Self::Surrogate;
1696    pub const Space: Self = Self(26);
1697    pub const SP: Self = Self::Space;
1698    pub const BreakSymbols: Self = Self(27);
1699    pub const SY: Self = Self::BreakSymbols;
1700    pub const ZWSpace: Self = Self(28);
1701    pub const ZW: Self = Self::ZWSpace;
1702    pub const NextLine: Self = Self(29);
1703    pub const NL: Self = Self::NextLine;
1704    pub const WordJoiner: Self = Self(30);
1705    pub const WJ: Self = Self::WordJoiner;
1706    pub const H2: Self = Self(31);
1707    pub const H3: Self = Self(32);
1708    pub const JL: Self = Self(33);
1709    pub const JT: Self = Self(34);
1710    pub const JV: Self = Self(35);
1711    pub const CloseParenthesis: Self = Self(36);
1712    pub const CP: Self = Self::CloseParenthesis;
1713    pub const ConditionalJapaneseStarter: Self = Self(37);
1714    pub const CJ: Self = Self::ConditionalJapaneseStarter;
1715    pub const HebrewLetter: Self = Self(38);
1716    pub const HL: Self = Self::HebrewLetter;
1717    pub const RegionalIndicator: Self = Self(39);
1718    pub const RI: Self = Self::RegionalIndicator;
1719    pub const EBase: Self = Self(40);
1720    pub const EB: Self = Self::EBase;
1721    pub const EModifier: Self = Self(41);
1722    pub const EM: Self = Self::EModifier;
1723    pub const ZWJ: Self = Self(42);
1724    pub const Aksara: Self = Self(43);
1725    pub const AK: Self = Self::Aksara;
1726    pub const AksaraPrebase: Self = Self(44);
1727    pub const AP: Self = Self::AksaraPrebase;
1728    pub const AksaraStart: Self = Self(45);
1729    pub const AS: Self = Self::AksaraStart;
1730    pub const ViramaFinal: Self = Self(46);
1731    pub const VF: Self = Self::ViramaFinal;
1732    pub const Virama: Self = Self(47);
1733    pub const VI: Self = Self::Virama;
1734    pub const UnambiguousHyphen: Self = Self(48);
1735    pub const HH: Self = Self::UnambiguousHyphen;
1736}
1737
1738#[cfg(feature = "datagen")]
1739impl databake::Bake for LineBreak {
1740    fn bake(&self, env: &databake::CrateEnv) -> databake::TokenStream {
1741        env.insert("icu_properties");
1742        match *self {
1743            Self::Unknown => databake::quote!(icu_properties::props::LineBreak::Unknown),
1744            Self::Ambiguous => databake::quote!(icu_properties::props::LineBreak::Ambiguous),
1745            Self::Alphabetic => databake::quote!(icu_properties::props::LineBreak::Alphabetic),
1746            Self::BreakBoth => databake::quote!(icu_properties::props::LineBreak::BreakBoth),
1747            Self::BreakAfter => databake::quote!(icu_properties::props::LineBreak::BreakAfter),
1748            Self::BreakBefore => databake::quote!(icu_properties::props::LineBreak::BreakBefore),
1749            Self::MandatoryBreak => databake::quote!(icu_properties::props::LineBreak::MandatoryBreak),
1750            Self::ContingentBreak => databake::quote!(icu_properties::props::LineBreak::ContingentBreak),
1751            Self::ClosePunctuation => databake::quote!(icu_properties::props::LineBreak::ClosePunctuation),
1752            Self::CombiningMark => databake::quote!(icu_properties::props::LineBreak::CombiningMark),
1753            Self::CarriageReturn => databake::quote!(icu_properties::props::LineBreak::CarriageReturn),
1754            Self::Exclamation => databake::quote!(icu_properties::props::LineBreak::Exclamation),
1755            Self::Glue => databake::quote!(icu_properties::props::LineBreak::Glue),
1756            Self::Hyphen => databake::quote!(icu_properties::props::LineBreak::Hyphen),
1757            Self::Ideographic => databake::quote!(icu_properties::props::LineBreak::Ideographic),
1758            Self::Inseparable => databake::quote!(icu_properties::props::LineBreak::Inseparable),
1759            Self::InfixNumeric => databake::quote!(icu_properties::props::LineBreak::InfixNumeric),
1760            Self::LineFeed => databake::quote!(icu_properties::props::LineBreak::LineFeed),
1761            Self::Nonstarter => databake::quote!(icu_properties::props::LineBreak::Nonstarter),
1762            Self::Numeric => databake::quote!(icu_properties::props::LineBreak::Numeric),
1763            Self::OpenPunctuation => databake::quote!(icu_properties::props::LineBreak::OpenPunctuation),
1764            Self::PostfixNumeric => databake::quote!(icu_properties::props::LineBreak::PostfixNumeric),
1765            Self::PrefixNumeric => databake::quote!(icu_properties::props::LineBreak::PrefixNumeric),
1766            Self::Quotation => databake::quote!(icu_properties::props::LineBreak::Quotation),
1767            Self::ComplexContext => databake::quote!(icu_properties::props::LineBreak::ComplexContext),
1768            Self::Surrogate => databake::quote!(icu_properties::props::LineBreak::Surrogate),
1769            Self::Space => databake::quote!(icu_properties::props::LineBreak::Space),
1770            Self::BreakSymbols => databake::quote!(icu_properties::props::LineBreak::BreakSymbols),
1771            Self::ZWSpace => databake::quote!(icu_properties::props::LineBreak::ZWSpace),
1772            Self::NextLine => databake::quote!(icu_properties::props::LineBreak::NextLine),
1773            Self::WordJoiner => databake::quote!(icu_properties::props::LineBreak::WordJoiner),
1774            Self::H2 => databake::quote!(icu_properties::props::LineBreak::H2),
1775            Self::H3 => databake::quote!(icu_properties::props::LineBreak::H3),
1776            Self::JL => databake::quote!(icu_properties::props::LineBreak::JL),
1777            Self::JT => databake::quote!(icu_properties::props::LineBreak::JT),
1778            Self::JV => databake::quote!(icu_properties::props::LineBreak::JV),
1779            Self::CloseParenthesis => databake::quote!(icu_properties::props::LineBreak::CloseParenthesis),
1780            Self::ConditionalJapaneseStarter => databake::quote!(icu_properties::props::LineBreak::ConditionalJapaneseStarter),
1781            Self::HebrewLetter => databake::quote!(icu_properties::props::LineBreak::HebrewLetter),
1782            Self::RegionalIndicator => databake::quote!(icu_properties::props::LineBreak::RegionalIndicator),
1783            Self::EBase => databake::quote!(icu_properties::props::LineBreak::EBase),
1784            Self::EModifier => databake::quote!(icu_properties::props::LineBreak::EModifier),
1785            Self::ZWJ => databake::quote!(icu_properties::props::LineBreak::ZWJ),
1786            Self::Aksara => databake::quote!(icu_properties::props::LineBreak::Aksara),
1787            Self::AksaraPrebase => databake::quote!(icu_properties::props::LineBreak::AksaraPrebase),
1788            Self::AksaraStart => databake::quote!(icu_properties::props::LineBreak::AksaraStart),
1789            Self::ViramaFinal => databake::quote!(icu_properties::props::LineBreak::ViramaFinal),
1790            Self::Virama => databake::quote!(icu_properties::props::LineBreak::Virama),
1791            Self::UnambiguousHyphen => databake::quote!(icu_properties::props::LineBreak::UnambiguousHyphen),
1792            Self(v) => databake::quote!(icu_properties::props::LineBreak(#v)),
1793        }
1794    }
1795}
1796
1797
1798impl From<LineBreak> for u16  {
1799    fn from(other: LineBreak) -> Self {
1800        other.0 as u16
1801    }
1802}
1803
1804impl LineBreak {
1805    /// Deprecated
1806    #[deprecated]
1807    pub const ALL_VALUES: &'static [Self] = &[
1808        Self::Unknown,
1809        Self::Ambiguous,
1810        Self::Alphabetic,
1811        Self::BreakBoth,
1812        Self::BreakAfter,
1813        Self::BreakBefore,
1814        Self::MandatoryBreak,
1815        Self::ContingentBreak,
1816        Self::ClosePunctuation,
1817        Self::CombiningMark,
1818        Self::CarriageReturn,
1819        Self::Exclamation,
1820        Self::Glue,
1821        Self::Hyphen,
1822        Self::Ideographic,
1823        Self::Inseparable,
1824        Self::InfixNumeric,
1825        Self::LineFeed,
1826        Self::Nonstarter,
1827        Self::Numeric,
1828        Self::OpenPunctuation,
1829        Self::PostfixNumeric,
1830        Self::PrefixNumeric,
1831        Self::Quotation,
1832        Self::ComplexContext,
1833        Self::Surrogate,
1834        Self::Space,
1835        Self::BreakSymbols,
1836        Self::ZWSpace,
1837        Self::NextLine,
1838        Self::WordJoiner,
1839        Self::H2,
1840        Self::H3,
1841        Self::JL,
1842        Self::JT,
1843        Self::JV,
1844        Self::CloseParenthesis,
1845        Self::ConditionalJapaneseStarter,
1846        Self::HebrewLetter,
1847        Self::RegionalIndicator,
1848        Self::EBase,
1849        Self::EModifier,
1850        Self::ZWJ,
1851        Self::Aksara,
1852        Self::AksaraPrebase,
1853        Self::AksaraStart,
1854        Self::ViramaFinal,
1855        Self::Virama,
1856        Self::UnambiguousHyphen,
1857    ];
1858
1859    #[cfg(feature = "datagen")]
1860    #[doc(hidden)]
1861    pub fn names() -> impl Iterator<Item = (&'static str, Self)> {
1862        [
1863            ("XX", Self::Unknown),
1864            ("AI", Self::Ambiguous),
1865            ("AL", Self::Alphabetic),
1866            ("B2", Self::BreakBoth),
1867            ("BA", Self::BreakAfter),
1868            ("BB", Self::BreakBefore),
1869            ("BK", Self::MandatoryBreak),
1870            ("CB", Self::ContingentBreak),
1871            ("CL", Self::ClosePunctuation),
1872            ("CM", Self::CombiningMark),
1873            ("CR", Self::CarriageReturn),
1874            ("EX", Self::Exclamation),
1875            ("GL", Self::Glue),
1876            ("HY", Self::Hyphen),
1877            ("ID", Self::Ideographic),
1878            ("IN", Self::Inseparable),
1879            ("IS", Self::InfixNumeric),
1880            ("LF", Self::LineFeed),
1881            ("NS", Self::Nonstarter),
1882            ("NU", Self::Numeric),
1883            ("OP", Self::OpenPunctuation),
1884            ("PO", Self::PostfixNumeric),
1885            ("PR", Self::PrefixNumeric),
1886            ("QU", Self::Quotation),
1887            ("SA", Self::ComplexContext),
1888            ("SG", Self::Surrogate),
1889            ("SP", Self::Space),
1890            ("SY", Self::BreakSymbols),
1891            ("ZW", Self::ZWSpace),
1892            ("NL", Self::NextLine),
1893            ("WJ", Self::WordJoiner),
1894            ("H2", Self::H2),
1895            ("H3", Self::H3),
1896            ("JL", Self::JL),
1897            ("JT", Self::JT),
1898            ("JV", Self::JV),
1899            ("CP", Self::CloseParenthesis),
1900            ("CJ", Self::ConditionalJapaneseStarter),
1901            ("HL", Self::HebrewLetter),
1902            ("RI", Self::RegionalIndicator),
1903            ("EB", Self::EBase),
1904            ("EM", Self::EModifier),
1905            ("ZWJ", Self::ZWJ),
1906            ("AK", Self::Aksara),
1907            ("AP", Self::AksaraPrebase),
1908            ("AS", Self::AksaraStart),
1909            ("VF", Self::ViramaFinal),
1910            ("VI", Self::Virama),
1911            ("HH", Self::UnambiguousHyphen),
1912        ].into_iter()
1913    }
1914}
1915
1916impl NumericType {
1917    pub const None: Self = Self(0);
1918    pub const Decimal: Self = Self(1);
1919    pub const De: Self = Self::Decimal;
1920    pub const Digit: Self = Self(2);
1921    pub const Di: Self = Self::Digit;
1922    pub const Numeric: Self = Self(3);
1923    pub const Nu: Self = Self::Numeric;
1924}
1925
1926#[cfg(feature = "datagen")]
1927impl databake::Bake for NumericType {
1928    fn bake(&self, env: &databake::CrateEnv) -> databake::TokenStream {
1929        env.insert("icu_properties");
1930        match *self {
1931            Self::None => databake::quote!(icu_properties::props::NumericType::None),
1932            Self::Decimal => databake::quote!(icu_properties::props::NumericType::Decimal),
1933            Self::Digit => databake::quote!(icu_properties::props::NumericType::Digit),
1934            Self::Numeric => databake::quote!(icu_properties::props::NumericType::Numeric),
1935            Self(v) => databake::quote!(icu_properties::props::NumericType(#v)),
1936        }
1937    }
1938}
1939
1940
1941impl From<NumericType> for u16  {
1942    fn from(other: NumericType) -> Self {
1943        other.0 as u16
1944    }
1945}
1946
1947impl NumericType {
1948    /// Deprecated
1949    #[deprecated]
1950    pub const ALL_VALUES: &'static [Self] = &[
1951        Self::None,
1952        Self::Decimal,
1953        Self::Digit,
1954        Self::Numeric,
1955    ];
1956
1957    #[cfg(feature = "datagen")]
1958    #[doc(hidden)]
1959    pub fn names() -> impl Iterator<Item = (&'static str, Self)> {
1960        [
1961            ("None", Self::None),
1962            ("De", Self::Decimal),
1963            ("Di", Self::Digit),
1964            ("Nu", Self::Numeric),
1965        ].into_iter()
1966    }
1967}
1968
1969impl Script {
1970    pub const Common: Self = Self(0);
1971    pub const Zyyy: Self = Self::Common;
1972    pub const Inherited: Self = Self(1);
1973    pub const Zinh: Self = Self::Inherited;
1974    pub const Qaai: Self = Self::Inherited;
1975    pub const Arabic: Self = Self(2);
1976    pub const Arab: Self = Self::Arabic;
1977    pub const Armenian: Self = Self(3);
1978    pub const Armn: Self = Self::Armenian;
1979    pub const Bengali: Self = Self(4);
1980    pub const Beng: Self = Self::Bengali;
1981    pub const Bopomofo: Self = Self(5);
1982    pub const Bopo: Self = Self::Bopomofo;
1983    pub const Cherokee: Self = Self(6);
1984    pub const Cher: Self = Self::Cherokee;
1985    pub const Coptic: Self = Self(7);
1986    pub const Copt: Self = Self::Coptic;
1987    pub const Qaac: Self = Self::Coptic;
1988    pub const Cyrillic: Self = Self(8);
1989    pub const Cyrl: Self = Self::Cyrillic;
1990    pub const Deseret: Self = Self(9);
1991    pub const Dsrt: Self = Self::Deseret;
1992    pub const Devanagari: Self = Self(10);
1993    pub const Deva: Self = Self::Devanagari;
1994    pub const Ethiopic: Self = Self(11);
1995    pub const Ethi: Self = Self::Ethiopic;
1996    pub const Georgian: Self = Self(12);
1997    pub const Geor: Self = Self::Georgian;
1998    pub const Gothic: Self = Self(13);
1999    pub const Goth: Self = Self::Gothic;
2000    pub const Greek: Self = Self(14);
2001    pub const Grek: Self = Self::Greek;
2002    pub const Gujarati: Self = Self(15);
2003    pub const Gujr: Self = Self::Gujarati;
2004    pub const Gurmukhi: Self = Self(16);
2005    pub const Guru: Self = Self::Gurmukhi;
2006    pub const Han: Self = Self(17);
2007    pub const Hani: Self = Self::Han;
2008    pub const Hangul: Self = Self(18);
2009    pub const Hang: Self = Self::Hangul;
2010    pub const Hebrew: Self = Self(19);
2011    pub const Hebr: Self = Self::Hebrew;
2012    pub const Hiragana: Self = Self(20);
2013    pub const Hira: Self = Self::Hiragana;
2014    pub const Kannada: Self = Self(21);
2015    pub const Knda: Self = Self::Kannada;
2016    pub const Katakana: Self = Self(22);
2017    pub const Kana: Self = Self::Katakana;
2018    pub const Khmer: Self = Self(23);
2019    pub const Khmr: Self = Self::Khmer;
2020    pub const Lao: Self = Self(24);
2021    pub const Laoo: Self = Self::Lao;
2022    pub const Latin: Self = Self(25);
2023    pub const Latn: Self = Self::Latin;
2024    pub const Malayalam: Self = Self(26);
2025    pub const Mlym: Self = Self::Malayalam;
2026    pub const Mongolian: Self = Self(27);
2027    pub const Mong: Self = Self::Mongolian;
2028    pub const Myanmar: Self = Self(28);
2029    pub const Mymr: Self = Self::Myanmar;
2030    pub const Ogham: Self = Self(29);
2031    pub const Ogam: Self = Self::Ogham;
2032    pub const OldItalic: Self = Self(30);
2033    pub const Ital: Self = Self::OldItalic;
2034    pub const Oriya: Self = Self(31);
2035    pub const Orya: Self = Self::Oriya;
2036    pub const Runic: Self = Self(32);
2037    pub const Runr: Self = Self::Runic;
2038    pub const Sinhala: Self = Self(33);
2039    pub const Sinh: Self = Self::Sinhala;
2040    pub const Syriac: Self = Self(34);
2041    pub const Syrc: Self = Self::Syriac;
2042    pub const Tamil: Self = Self(35);
2043    pub const Taml: Self = Self::Tamil;
2044    pub const Telugu: Self = Self(36);
2045    pub const Telu: Self = Self::Telugu;
2046    pub const Thaana: Self = Self(37);
2047    pub const Thaa: Self = Self::Thaana;
2048    pub const Thai: Self = Self(38);
2049    pub const Tibetan: Self = Self(39);
2050    pub const Tibt: Self = Self::Tibetan;
2051    pub const CanadianAboriginal: Self = Self(40);
2052    pub const Cans: Self = Self::CanadianAboriginal;
2053    pub const Yi: Self = Self(41);
2054    pub const Yiii: Self = Self::Yi;
2055    pub const Tagalog: Self = Self(42);
2056    pub const Tglg: Self = Self::Tagalog;
2057    pub const Hanunoo: Self = Self(43);
2058    pub const Hano: Self = Self::Hanunoo;
2059    pub const Buhid: Self = Self(44);
2060    pub const Buhd: Self = Self::Buhid;
2061    pub const Tagbanwa: Self = Self(45);
2062    pub const Tagb: Self = Self::Tagbanwa;
2063    pub const Braille: Self = Self(46);
2064    pub const Brai: Self = Self::Braille;
2065    pub const Cypriot: Self = Self(47);
2066    pub const Cprt: Self = Self::Cypriot;
2067    pub const Limbu: Self = Self(48);
2068    pub const Limb: Self = Self::Limbu;
2069    pub const LinearB: Self = Self(49);
2070    pub const Linb: Self = Self::LinearB;
2071    pub const Osmanya: Self = Self(50);
2072    pub const Osma: Self = Self::Osmanya;
2073    pub const Shavian: Self = Self(51);
2074    pub const Shaw: Self = Self::Shavian;
2075    pub const TaiLe: Self = Self(52);
2076    pub const Tale: Self = Self::TaiLe;
2077    pub const Ugaritic: Self = Self(53);
2078    pub const Ugar: Self = Self::Ugaritic;
2079    pub const KatakanaOrHiragana: Self = Self(54);
2080    pub const Hrkt: Self = Self::KatakanaOrHiragana;
2081    pub const Buginese: Self = Self(55);
2082    pub const Bugi: Self = Self::Buginese;
2083    pub const Glagolitic: Self = Self(56);
2084    pub const Glag: Self = Self::Glagolitic;
2085    pub const Kharoshthi: Self = Self(57);
2086    pub const Khar: Self = Self::Kharoshthi;
2087    pub const SylotiNagri: Self = Self(58);
2088    pub const Sylo: Self = Self::SylotiNagri;
2089    pub const NewTaiLue: Self = Self(59);
2090    pub const Talu: Self = Self::NewTaiLue;
2091    pub const Tifinagh: Self = Self(60);
2092    pub const Tfng: Self = Self::Tifinagh;
2093    pub const OldPersian: Self = Self(61);
2094    pub const Xpeo: Self = Self::OldPersian;
2095    pub const Balinese: Self = Self(62);
2096    pub const Bali: Self = Self::Balinese;
2097    pub const Batak: Self = Self(63);
2098    pub const Batk: Self = Self::Batak;
2099    /// ISO 15924
2100    pub const BlisSymbols: Self = Self(64);
2101    /// ISO 15924
2102    pub const Blis: Self = Self::BlisSymbols;
2103    pub const Brahmi: Self = Self(65);
2104    pub const Brah: Self = Self::Brahmi;
2105    pub const Cham: Self = Self(66);
2106    /// ISO 15924
2107    pub const Cirth: Self = Self(67);
2108    /// ISO 15924
2109    pub const Cirt: Self = Self::Cirth;
2110    /// ISO 15924
2111    pub const OldChurchSlavonicCyrillic: Self = Self(68);
2112    /// ISO 15924
2113    pub const Cyrs: Self = Self::OldChurchSlavonicCyrillic;
2114    /// ISO 15924
2115    pub const DemoticEgyptian: Self = Self(69);
2116    /// ISO 15924
2117    pub const Egyd: Self = Self::DemoticEgyptian;
2118    /// ISO 15924
2119    pub const HieraticEgyptian: Self = Self(70);
2120    /// ISO 15924
2121    pub const Egyh: Self = Self::HieraticEgyptian;
2122    pub const EgyptianHieroglyphs: Self = Self(71);
2123    pub const Egyp: Self = Self::EgyptianHieroglyphs;
2124    /// ISO 15924
2125    pub const Khutsuri: Self = Self(72);
2126    /// ISO 15924
2127    pub const Geok: Self = Self::Khutsuri;
2128    /// ISO 15924
2129    pub const SimplifiedHan: Self = Self(73);
2130    /// ISO 15924
2131    pub const Hans: Self = Self::SimplifiedHan;
2132    /// ISO 15924
2133    pub const TraditionalHan: Self = Self(74);
2134    /// ISO 15924
2135    pub const Hant: Self = Self::TraditionalHan;
2136    pub const PahawhHmong: Self = Self(75);
2137    pub const Hmng: Self = Self::PahawhHmong;
2138    pub const OldHungarian: Self = Self(76);
2139    pub const Hung: Self = Self::OldHungarian;
2140    /// ISO 15924
2141    pub const HarappanIndus: Self = Self(77);
2142    /// ISO 15924
2143    pub const Inds: Self = Self::HarappanIndus;
2144    pub const Javanese: Self = Self(78);
2145    pub const Java: Self = Self::Javanese;
2146    pub const KayahLi: Self = Self(79);
2147    pub const Kali: Self = Self::KayahLi;
2148    /// ISO 15924
2149    pub const LatinFraktur: Self = Self(80);
2150    /// ISO 15924
2151    pub const Latf: Self = Self::LatinFraktur;
2152    /// ISO 15924
2153    pub const LatinGaelic: Self = Self(81);
2154    /// ISO 15924
2155    pub const Latg: Self = Self::LatinGaelic;
2156    pub const Lepcha: Self = Self(82);
2157    pub const Lepc: Self = Self::Lepcha;
2158    pub const LinearA: Self = Self(83);
2159    pub const Lina: Self = Self::LinearA;
2160    pub const Mandaic: Self = Self(84);
2161    pub const Mand: Self = Self::Mandaic;
2162    /// ISO 15924
2163    pub const MayanHieroglyphs: Self = Self(85);
2164    /// ISO 15924
2165    pub const Maya: Self = Self::MayanHieroglyphs;
2166    pub const MeroiticHieroglyphs: Self = Self(86);
2167    pub const Mero: Self = Self::MeroiticHieroglyphs;
2168    pub const Nko: Self = Self(87);
2169    pub const Nkoo: Self = Self::Nko;
2170    pub const OldTurkic: Self = Self(88);
2171    pub const Orkh: Self = Self::OldTurkic;
2172    pub const OldPermic: Self = Self(89);
2173    pub const Perm: Self = Self::OldPermic;
2174    pub const PhagsPa: Self = Self(90);
2175    pub const Phag: Self = Self::PhagsPa;
2176    pub const Phoenician: Self = Self(91);
2177    pub const Phnx: Self = Self::Phoenician;
2178    pub const Miao: Self = Self(92);
2179    pub const Plrd: Self = Self::Miao;
2180    /// ISO 15924
2181    pub const Rongorongo: Self = Self(93);
2182    /// ISO 15924
2183    pub const Roro: Self = Self::Rongorongo;
2184    /// ISO 15924
2185    pub const Sarati: Self = Self(94);
2186    /// ISO 15924
2187    pub const Sara: Self = Self::Sarati;
2188    /// ISO 15924
2189    pub const EstrangeloSyriac: Self = Self(95);
2190    /// ISO 15924
2191    pub const Syre: Self = Self::EstrangeloSyriac;
2192    /// ISO 15924
2193    pub const WesternSyriac: Self = Self(96);
2194    /// ISO 15924
2195    pub const Syrj: Self = Self::WesternSyriac;
2196    /// ISO 15924
2197    pub const EasternSyriac: Self = Self(97);
2198    /// ISO 15924
2199    pub const Syrn: Self = Self::EasternSyriac;
2200    /// ISO 15924
2201    pub const Tengwar: Self = Self(98);
2202    /// ISO 15924
2203    pub const Teng: Self = Self::Tengwar;
2204    pub const Vai: Self = Self(99);
2205    pub const Vaii: Self = Self::Vai;
2206    /// ISO 15924
2207    pub const VisibleSpeech: Self = Self(100);
2208    /// ISO 15924
2209    pub const Visp: Self = Self::VisibleSpeech;
2210    pub const Cuneiform: Self = Self(101);
2211    pub const Xsux: Self = Self::Cuneiform;
2212    /// ISO 15924
2213    pub const UnwrittenLanguages: Self = Self(102);
2214    /// ISO 15924
2215    pub const Zxxx: Self = Self::UnwrittenLanguages;
2216    pub const Unknown: Self = Self(103);
2217    pub const Zzzz: Self = Self::Unknown;
2218    pub const Carian: Self = Self(104);
2219    pub const Cari: Self = Self::Carian;
2220    /// ISO 15924
2221    pub const Japanese: Self = Self(105);
2222    /// ISO 15924
2223    pub const Jpan: Self = Self::Japanese;
2224    pub const TaiTham: Self = Self(106);
2225    pub const Lana: Self = Self::TaiTham;
2226    pub const Lycian: Self = Self(107);
2227    pub const Lyci: Self = Self::Lycian;
2228    pub const Lydian: Self = Self(108);
2229    pub const Lydi: Self = Self::Lydian;
2230    pub const OlChiki: Self = Self(109);
2231    pub const Olck: Self = Self::OlChiki;
2232    pub const Rejang: Self = Self(110);
2233    pub const Rjng: Self = Self::Rejang;
2234    pub const Saurashtra: Self = Self(111);
2235    pub const Saur: Self = Self::Saurashtra;
2236    pub const SignWriting: Self = Self(112);
2237    pub const Sgnw: Self = Self::SignWriting;
2238    pub const Sundanese: Self = Self(113);
2239    pub const Sund: Self = Self::Sundanese;
2240    /// ISO 15924
2241    pub const Moon: Self = Self(114);
2242    pub const MeeteiMayek: Self = Self(115);
2243    pub const Mtei: Self = Self::MeeteiMayek;
2244    pub const ImperialAramaic: Self = Self(116);
2245    pub const Armi: Self = Self::ImperialAramaic;
2246    pub const Avestan: Self = Self(117);
2247    pub const Avst: Self = Self::Avestan;
2248    pub const Chakma: Self = Self(118);
2249    pub const Cakm: Self = Self::Chakma;
2250    /// ISO 15924
2251    pub const Korean: Self = Self(119);
2252    /// ISO 15924
2253    pub const Kore: Self = Self::Korean;
2254    pub const Kaithi: Self = Self(120);
2255    pub const Kthi: Self = Self::Kaithi;
2256    pub const Manichaean: Self = Self(121);
2257    pub const Mani: Self = Self::Manichaean;
2258    pub const InscriptionalPahlavi: Self = Self(122);
2259    pub const Phli: Self = Self::InscriptionalPahlavi;
2260    pub const PsalterPahlavi: Self = Self(123);
2261    pub const Phlp: Self = Self::PsalterPahlavi;
2262    /// ISO 15924
2263    pub const BookPahlavi: Self = Self(124);
2264    /// ISO 15924
2265    pub const Phlv: Self = Self::BookPahlavi;
2266    pub const InscriptionalParthian: Self = Self(125);
2267    pub const Prti: Self = Self::InscriptionalParthian;
2268    pub const Samaritan: Self = Self(126);
2269    pub const Samr: Self = Self::Samaritan;
2270    pub const TaiViet: Self = Self(127);
2271    pub const Tavt: Self = Self::TaiViet;
2272    /// ISO 15924
2273    pub const MathematicalNotation: Self = Self(128);
2274    /// ISO 15924
2275    pub const Zmth: Self = Self::MathematicalNotation;
2276    /// ISO 15924
2277    pub const Symbols: Self = Self(129);
2278    /// ISO 15924
2279    pub const Zsym: Self = Self::Symbols;
2280    pub const Bamum: Self = Self(130);
2281    pub const Bamu: Self = Self::Bamum;
2282    pub const Lisu: Self = Self(131);
2283    /// ISO 15924
2284    pub const NakhiGeba: Self = Self(132);
2285    /// ISO 15924
2286    pub const Nkgb: Self = Self::NakhiGeba;
2287    pub const OldSouthArabian: Self = Self(133);
2288    pub const Sarb: Self = Self::OldSouthArabian;
2289    pub const BassaVah: Self = Self(134);
2290    pub const Bass: Self = Self::BassaVah;
2291    pub const Duployan: Self = Self(135);
2292    pub const Dupl: Self = Self::Duployan;
2293    pub const Elbasan: Self = Self(136);
2294    pub const Elba: Self = Self::Elbasan;
2295    pub const Grantha: Self = Self(137);
2296    pub const Gran: Self = Self::Grantha;
2297    /// ISO 15924
2298    pub const Kpelle: Self = Self(138);
2299    /// ISO 15924
2300    pub const Kpel: Self = Self::Kpelle;
2301    /// ISO 15924
2302    pub const Loma: Self = Self(139);
2303    pub const MendeKikakui: Self = Self(140);
2304    pub const Mend: Self = Self::MendeKikakui;
2305    pub const MeroiticCursive: Self = Self(141);
2306    pub const Merc: Self = Self::MeroiticCursive;
2307    pub const OldNorthArabian: Self = Self(142);
2308    pub const Narb: Self = Self::OldNorthArabian;
2309    pub const Nabataean: Self = Self(143);
2310    pub const Nbat: Self = Self::Nabataean;
2311    pub const Palmyrene: Self = Self(144);
2312    pub const Palm: Self = Self::Palmyrene;
2313    pub const Khudawadi: Self = Self(145);
2314    pub const Sind: Self = Self::Khudawadi;
2315    pub const WarangCiti: Self = Self(146);
2316    pub const Wara: Self = Self::WarangCiti;
2317    /// ISO 15924
2318    pub const Afaka: Self = Self(147);
2319    /// ISO 15924
2320    pub const Afak: Self = Self::Afaka;
2321    /// ISO 15924
2322    pub const Jurchen: Self = Self(148);
2323    /// ISO 15924
2324    pub const Jurc: Self = Self::Jurchen;
2325    pub const Mro: Self = Self(149);
2326    pub const Mroo: Self = Self::Mro;
2327    pub const Nushu: Self = Self(150);
2328    pub const Nshu: Self = Self::Nushu;
2329    pub const Sharada: Self = Self(151);
2330    pub const Shrd: Self = Self::Sharada;
2331    pub const SoraSompeng: Self = Self(152);
2332    pub const Sora: Self = Self::SoraSompeng;
2333    pub const Takri: Self = Self(153);
2334    pub const Takr: Self = Self::Takri;
2335    pub const Tangut: Self = Self(154);
2336    pub const Tang: Self = Self::Tangut;
2337    /// ISO 15924
2338    pub const Woleai: Self = Self(155);
2339    /// ISO 15924
2340    pub const Wole: Self = Self::Woleai;
2341    pub const AnatolianHieroglyphs: Self = Self(156);
2342    pub const Hluw: Self = Self::AnatolianHieroglyphs;
2343    pub const Khojki: Self = Self(157);
2344    pub const Khoj: Self = Self::Khojki;
2345    pub const Tirhuta: Self = Self(158);
2346    pub const Tirh: Self = Self::Tirhuta;
2347    pub const CaucasianAlbanian: Self = Self(159);
2348    pub const Aghb: Self = Self::CaucasianAlbanian;
2349    pub const Mahajani: Self = Self(160);
2350    pub const Mahj: Self = Self::Mahajani;
2351    pub const Ahom: Self = Self(161);
2352    pub const Hatran: Self = Self(162);
2353    pub const Hatr: Self = Self::Hatran;
2354    pub const Modi: Self = Self(163);
2355    pub const Multani: Self = Self(164);
2356    pub const Mult: Self = Self::Multani;
2357    pub const PauCinHau: Self = Self(165);
2358    pub const Pauc: Self = Self::PauCinHau;
2359    pub const Siddham: Self = Self(166);
2360    pub const Sidd: Self = Self::Siddham;
2361    pub const Adlam: Self = Self(167);
2362    pub const Adlm: Self = Self::Adlam;
2363    pub const Bhaiksuki: Self = Self(168);
2364    pub const Bhks: Self = Self::Bhaiksuki;
2365    pub const Marchen: Self = Self(169);
2366    pub const Marc: Self = Self::Marchen;
2367    pub const Newa: Self = Self(170);
2368    pub const Osage: Self = Self(171);
2369    pub const Osge: Self = Self::Osage;
2370    /// ISO 15924
2371    pub const HanWithBopomofo: Self = Self(172);
2372    /// ISO 15924
2373    pub const Hanb: Self = Self::HanWithBopomofo;
2374    /// ISO 15924
2375    pub const Jamo: Self = Self(173);
2376    /// ISO 15924
2377    pub const SymbolsEmoji: Self = Self(174);
2378    /// ISO 15924
2379    pub const Zsye: Self = Self::SymbolsEmoji;
2380    pub const MasaramGondi: Self = Self(175);
2381    pub const Gonm: Self = Self::MasaramGondi;
2382    pub const Soyombo: Self = Self(176);
2383    pub const Soyo: Self = Self::Soyombo;
2384    pub const ZanabazarSquare: Self = Self(177);
2385    pub const Zanb: Self = Self::ZanabazarSquare;
2386    pub const Dogra: Self = Self(178);
2387    pub const Dogr: Self = Self::Dogra;
2388    pub const GunjalaGondi: Self = Self(179);
2389    pub const Gong: Self = Self::GunjalaGondi;
2390    pub const Makasar: Self = Self(180);
2391    pub const Maka: Self = Self::Makasar;
2392    pub const Medefaidrin: Self = Self(181);
2393    pub const Medf: Self = Self::Medefaidrin;
2394    pub const HanifiRohingya: Self = Self(182);
2395    pub const Rohg: Self = Self::HanifiRohingya;
2396    pub const Sogdian: Self = Self(183);
2397    pub const Sogd: Self = Self::Sogdian;
2398    pub const OldSogdian: Self = Self(184);
2399    pub const Sogo: Self = Self::OldSogdian;
2400    pub const Elymaic: Self = Self(185);
2401    pub const Elym: Self = Self::Elymaic;
2402    pub const NyiakengPuachueHmong: Self = Self(186);
2403    pub const Hmnp: Self = Self::NyiakengPuachueHmong;
2404    pub const Nandinagari: Self = Self(187);
2405    pub const Nand: Self = Self::Nandinagari;
2406    pub const Wancho: Self = Self(188);
2407    pub const Wcho: Self = Self::Wancho;
2408    pub const Chorasmian: Self = Self(189);
2409    pub const Chrs: Self = Self::Chorasmian;
2410    pub const DivesAkuru: Self = Self(190);
2411    pub const Diak: Self = Self::DivesAkuru;
2412    pub const KhitanSmallScript: Self = Self(191);
2413    pub const Kits: Self = Self::KhitanSmallScript;
2414    pub const Yezidi: Self = Self(192);
2415    pub const Yezi: Self = Self::Yezidi;
2416    pub const CyproMinoan: Self = Self(193);
2417    pub const Cpmn: Self = Self::CyproMinoan;
2418    pub const OldUyghur: Self = Self(194);
2419    pub const Ougr: Self = Self::OldUyghur;
2420    pub const Tangsa: Self = Self(195);
2421    pub const Tnsa: Self = Self::Tangsa;
2422    pub const Toto: Self = Self(196);
2423    pub const Vithkuqi: Self = Self(197);
2424    pub const Vith: Self = Self::Vithkuqi;
2425    pub const Kawi: Self = Self(198);
2426    pub const NagMundari: Self = Self(199);
2427    pub const Nagm: Self = Self::NagMundari;
2428    /// ISO 15924
2429    pub const ArabicNastaliq: Self = Self(200);
2430    /// ISO 15924
2431    pub const Aran: Self = Self::ArabicNastaliq;
2432    pub const Garay: Self = Self(201);
2433    pub const Gara: Self = Self::Garay;
2434    pub const GurungKhema: Self = Self(202);
2435    pub const Gukh: Self = Self::GurungKhema;
2436    pub const KiratRai: Self = Self(203);
2437    pub const Krai: Self = Self::KiratRai;
2438    pub const OlOnal: Self = Self(204);
2439    pub const Onao: Self = Self::OlOnal;
2440    pub const Sunuwar: Self = Self(205);
2441    pub const Sunu: Self = Self::Sunuwar;
2442    pub const Todhri: Self = Self(206);
2443    pub const Todr: Self = Self::Todhri;
2444    pub const TuluTigalari: Self = Self(207);
2445    pub const Tutg: Self = Self::TuluTigalari;
2446    pub const BeriaErfe: Self = Self(208);
2447    pub const Berf: Self = Self::BeriaErfe;
2448    pub const Sidetic: Self = Self(209);
2449    pub const Sidt: Self = Self::Sidetic;
2450    pub const TaiYo: Self = Self(210);
2451    pub const Tayo: Self = Self::TaiYo;
2452    pub const TolongSiki: Self = Self(211);
2453    pub const Tols: Self = Self::TolongSiki;
2454    /// ISO 15924
2455    pub const TraditionalHanWithLatin: Self = Self(212);
2456    /// ISO 15924
2457    pub const Hntl: Self = Self::TraditionalHanWithLatin;
2458}
2459
2460#[cfg(feature = "datagen")]
2461impl databake::Bake for Script {
2462    fn bake(&self, env: &databake::CrateEnv) -> databake::TokenStream {
2463        env.insert("icu_properties");
2464        match *self {
2465            Self::Common => databake::quote!(icu_properties::props::Script::Common),
2466            Self::Inherited => databake::quote!(icu_properties::props::Script::Inherited),
2467            Self::Arabic => databake::quote!(icu_properties::props::Script::Arabic),
2468            Self::Armenian => databake::quote!(icu_properties::props::Script::Armenian),
2469            Self::Bengali => databake::quote!(icu_properties::props::Script::Bengali),
2470            Self::Bopomofo => databake::quote!(icu_properties::props::Script::Bopomofo),
2471            Self::Cherokee => databake::quote!(icu_properties::props::Script::Cherokee),
2472            Self::Coptic => databake::quote!(icu_properties::props::Script::Coptic),
2473            Self::Cyrillic => databake::quote!(icu_properties::props::Script::Cyrillic),
2474            Self::Deseret => databake::quote!(icu_properties::props::Script::Deseret),
2475            Self::Devanagari => databake::quote!(icu_properties::props::Script::Devanagari),
2476            Self::Ethiopic => databake::quote!(icu_properties::props::Script::Ethiopic),
2477            Self::Georgian => databake::quote!(icu_properties::props::Script::Georgian),
2478            Self::Gothic => databake::quote!(icu_properties::props::Script::Gothic),
2479            Self::Greek => databake::quote!(icu_properties::props::Script::Greek),
2480            Self::Gujarati => databake::quote!(icu_properties::props::Script::Gujarati),
2481            Self::Gurmukhi => databake::quote!(icu_properties::props::Script::Gurmukhi),
2482            Self::Han => databake::quote!(icu_properties::props::Script::Han),
2483            Self::Hangul => databake::quote!(icu_properties::props::Script::Hangul),
2484            Self::Hebrew => databake::quote!(icu_properties::props::Script::Hebrew),
2485            Self::Hiragana => databake::quote!(icu_properties::props::Script::Hiragana),
2486            Self::Kannada => databake::quote!(icu_properties::props::Script::Kannada),
2487            Self::Katakana => databake::quote!(icu_properties::props::Script::Katakana),
2488            Self::Khmer => databake::quote!(icu_properties::props::Script::Khmer),
2489            Self::Lao => databake::quote!(icu_properties::props::Script::Lao),
2490            Self::Latin => databake::quote!(icu_properties::props::Script::Latin),
2491            Self::Malayalam => databake::quote!(icu_properties::props::Script::Malayalam),
2492            Self::Mongolian => databake::quote!(icu_properties::props::Script::Mongolian),
2493            Self::Myanmar => databake::quote!(icu_properties::props::Script::Myanmar),
2494            Self::Ogham => databake::quote!(icu_properties::props::Script::Ogham),
2495            Self::OldItalic => databake::quote!(icu_properties::props::Script::OldItalic),
2496            Self::Oriya => databake::quote!(icu_properties::props::Script::Oriya),
2497            Self::Runic => databake::quote!(icu_properties::props::Script::Runic),
2498            Self::Sinhala => databake::quote!(icu_properties::props::Script::Sinhala),
2499            Self::Syriac => databake::quote!(icu_properties::props::Script::Syriac),
2500            Self::Tamil => databake::quote!(icu_properties::props::Script::Tamil),
2501            Self::Telugu => databake::quote!(icu_properties::props::Script::Telugu),
2502            Self::Thaana => databake::quote!(icu_properties::props::Script::Thaana),
2503            Self::Thai => databake::quote!(icu_properties::props::Script::Thai),
2504            Self::Tibetan => databake::quote!(icu_properties::props::Script::Tibetan),
2505            Self::CanadianAboriginal => databake::quote!(icu_properties::props::Script::CanadianAboriginal),
2506            Self::Yi => databake::quote!(icu_properties::props::Script::Yi),
2507            Self::Tagalog => databake::quote!(icu_properties::props::Script::Tagalog),
2508            Self::Hanunoo => databake::quote!(icu_properties::props::Script::Hanunoo),
2509            Self::Buhid => databake::quote!(icu_properties::props::Script::Buhid),
2510            Self::Tagbanwa => databake::quote!(icu_properties::props::Script::Tagbanwa),
2511            Self::Braille => databake::quote!(icu_properties::props::Script::Braille),
2512            Self::Cypriot => databake::quote!(icu_properties::props::Script::Cypriot),
2513            Self::Limbu => databake::quote!(icu_properties::props::Script::Limbu),
2514            Self::LinearB => databake::quote!(icu_properties::props::Script::LinearB),
2515            Self::Osmanya => databake::quote!(icu_properties::props::Script::Osmanya),
2516            Self::Shavian => databake::quote!(icu_properties::props::Script::Shavian),
2517            Self::TaiLe => databake::quote!(icu_properties::props::Script::TaiLe),
2518            Self::Ugaritic => databake::quote!(icu_properties::props::Script::Ugaritic),
2519            Self::KatakanaOrHiragana => databake::quote!(icu_properties::props::Script::KatakanaOrHiragana),
2520            Self::Buginese => databake::quote!(icu_properties::props::Script::Buginese),
2521            Self::Glagolitic => databake::quote!(icu_properties::props::Script::Glagolitic),
2522            Self::Kharoshthi => databake::quote!(icu_properties::props::Script::Kharoshthi),
2523            Self::SylotiNagri => databake::quote!(icu_properties::props::Script::SylotiNagri),
2524            Self::NewTaiLue => databake::quote!(icu_properties::props::Script::NewTaiLue),
2525            Self::Tifinagh => databake::quote!(icu_properties::props::Script::Tifinagh),
2526            Self::OldPersian => databake::quote!(icu_properties::props::Script::OldPersian),
2527            Self::Balinese => databake::quote!(icu_properties::props::Script::Balinese),
2528            Self::Batak => databake::quote!(icu_properties::props::Script::Batak),
2529            Self::BlisSymbols => databake::quote!(icu_properties::props::Script::BlisSymbols),
2530            Self::Brahmi => databake::quote!(icu_properties::props::Script::Brahmi),
2531            Self::Cham => databake::quote!(icu_properties::props::Script::Cham),
2532            Self::Cirth => databake::quote!(icu_properties::props::Script::Cirth),
2533            Self::OldChurchSlavonicCyrillic => databake::quote!(icu_properties::props::Script::OldChurchSlavonicCyrillic),
2534            Self::DemoticEgyptian => databake::quote!(icu_properties::props::Script::DemoticEgyptian),
2535            Self::HieraticEgyptian => databake::quote!(icu_properties::props::Script::HieraticEgyptian),
2536            Self::EgyptianHieroglyphs => databake::quote!(icu_properties::props::Script::EgyptianHieroglyphs),
2537            Self::Khutsuri => databake::quote!(icu_properties::props::Script::Khutsuri),
2538            Self::SimplifiedHan => databake::quote!(icu_properties::props::Script::SimplifiedHan),
2539            Self::TraditionalHan => databake::quote!(icu_properties::props::Script::TraditionalHan),
2540            Self::PahawhHmong => databake::quote!(icu_properties::props::Script::PahawhHmong),
2541            Self::OldHungarian => databake::quote!(icu_properties::props::Script::OldHungarian),
2542            Self::HarappanIndus => databake::quote!(icu_properties::props::Script::HarappanIndus),
2543            Self::Javanese => databake::quote!(icu_properties::props::Script::Javanese),
2544            Self::KayahLi => databake::quote!(icu_properties::props::Script::KayahLi),
2545            Self::LatinFraktur => databake::quote!(icu_properties::props::Script::LatinFraktur),
2546            Self::LatinGaelic => databake::quote!(icu_properties::props::Script::LatinGaelic),
2547            Self::Lepcha => databake::quote!(icu_properties::props::Script::Lepcha),
2548            Self::LinearA => databake::quote!(icu_properties::props::Script::LinearA),
2549            Self::Mandaic => databake::quote!(icu_properties::props::Script::Mandaic),
2550            Self::MayanHieroglyphs => databake::quote!(icu_properties::props::Script::MayanHieroglyphs),
2551            Self::MeroiticHieroglyphs => databake::quote!(icu_properties::props::Script::MeroiticHieroglyphs),
2552            Self::Nko => databake::quote!(icu_properties::props::Script::Nko),
2553            Self::OldTurkic => databake::quote!(icu_properties::props::Script::OldTurkic),
2554            Self::OldPermic => databake::quote!(icu_properties::props::Script::OldPermic),
2555            Self::PhagsPa => databake::quote!(icu_properties::props::Script::PhagsPa),
2556            Self::Phoenician => databake::quote!(icu_properties::props::Script::Phoenician),
2557            Self::Miao => databake::quote!(icu_properties::props::Script::Miao),
2558            Self::Rongorongo => databake::quote!(icu_properties::props::Script::Rongorongo),
2559            Self::Sarati => databake::quote!(icu_properties::props::Script::Sarati),
2560            Self::EstrangeloSyriac => databake::quote!(icu_properties::props::Script::EstrangeloSyriac),
2561            Self::WesternSyriac => databake::quote!(icu_properties::props::Script::WesternSyriac),
2562            Self::EasternSyriac => databake::quote!(icu_properties::props::Script::EasternSyriac),
2563            Self::Tengwar => databake::quote!(icu_properties::props::Script::Tengwar),
2564            Self::Vai => databake::quote!(icu_properties::props::Script::Vai),
2565            Self::VisibleSpeech => databake::quote!(icu_properties::props::Script::VisibleSpeech),
2566            Self::Cuneiform => databake::quote!(icu_properties::props::Script::Cuneiform),
2567            Self::UnwrittenLanguages => databake::quote!(icu_properties::props::Script::UnwrittenLanguages),
2568            Self::Unknown => databake::quote!(icu_properties::props::Script::Unknown),
2569            Self::Carian => databake::quote!(icu_properties::props::Script::Carian),
2570            Self::Japanese => databake::quote!(icu_properties::props::Script::Japanese),
2571            Self::TaiTham => databake::quote!(icu_properties::props::Script::TaiTham),
2572            Self::Lycian => databake::quote!(icu_properties::props::Script::Lycian),
2573            Self::Lydian => databake::quote!(icu_properties::props::Script::Lydian),
2574            Self::OlChiki => databake::quote!(icu_properties::props::Script::OlChiki),
2575            Self::Rejang => databake::quote!(icu_properties::props::Script::Rejang),
2576            Self::Saurashtra => databake::quote!(icu_properties::props::Script::Saurashtra),
2577            Self::SignWriting => databake::quote!(icu_properties::props::Script::SignWriting),
2578            Self::Sundanese => databake::quote!(icu_properties::props::Script::Sundanese),
2579            Self::Moon => databake::quote!(icu_properties::props::Script::Moon),
2580            Self::MeeteiMayek => databake::quote!(icu_properties::props::Script::MeeteiMayek),
2581            Self::ImperialAramaic => databake::quote!(icu_properties::props::Script::ImperialAramaic),
2582            Self::Avestan => databake::quote!(icu_properties::props::Script::Avestan),
2583            Self::Chakma => databake::quote!(icu_properties::props::Script::Chakma),
2584            Self::Korean => databake::quote!(icu_properties::props::Script::Korean),
2585            Self::Kaithi => databake::quote!(icu_properties::props::Script::Kaithi),
2586            Self::Manichaean => databake::quote!(icu_properties::props::Script::Manichaean),
2587            Self::InscriptionalPahlavi => databake::quote!(icu_properties::props::Script::InscriptionalPahlavi),
2588            Self::PsalterPahlavi => databake::quote!(icu_properties::props::Script::PsalterPahlavi),
2589            Self::BookPahlavi => databake::quote!(icu_properties::props::Script::BookPahlavi),
2590            Self::InscriptionalParthian => databake::quote!(icu_properties::props::Script::InscriptionalParthian),
2591            Self::Samaritan => databake::quote!(icu_properties::props::Script::Samaritan),
2592            Self::TaiViet => databake::quote!(icu_properties::props::Script::TaiViet),
2593            Self::MathematicalNotation => databake::quote!(icu_properties::props::Script::MathematicalNotation),
2594            Self::Symbols => databake::quote!(icu_properties::props::Script::Symbols),
2595            Self::Bamum => databake::quote!(icu_properties::props::Script::Bamum),
2596            Self::Lisu => databake::quote!(icu_properties::props::Script::Lisu),
2597            Self::NakhiGeba => databake::quote!(icu_properties::props::Script::NakhiGeba),
2598            Self::OldSouthArabian => databake::quote!(icu_properties::props::Script::OldSouthArabian),
2599            Self::BassaVah => databake::quote!(icu_properties::props::Script::BassaVah),
2600            Self::Duployan => databake::quote!(icu_properties::props::Script::Duployan),
2601            Self::Elbasan => databake::quote!(icu_properties::props::Script::Elbasan),
2602            Self::Grantha => databake::quote!(icu_properties::props::Script::Grantha),
2603            Self::Kpelle => databake::quote!(icu_properties::props::Script::Kpelle),
2604            Self::Loma => databake::quote!(icu_properties::props::Script::Loma),
2605            Self::MendeKikakui => databake::quote!(icu_properties::props::Script::MendeKikakui),
2606            Self::MeroiticCursive => databake::quote!(icu_properties::props::Script::MeroiticCursive),
2607            Self::OldNorthArabian => databake::quote!(icu_properties::props::Script::OldNorthArabian),
2608            Self::Nabataean => databake::quote!(icu_properties::props::Script::Nabataean),
2609            Self::Palmyrene => databake::quote!(icu_properties::props::Script::Palmyrene),
2610            Self::Khudawadi => databake::quote!(icu_properties::props::Script::Khudawadi),
2611            Self::WarangCiti => databake::quote!(icu_properties::props::Script::WarangCiti),
2612            Self::Afaka => databake::quote!(icu_properties::props::Script::Afaka),
2613            Self::Jurchen => databake::quote!(icu_properties::props::Script::Jurchen),
2614            Self::Mro => databake::quote!(icu_properties::props::Script::Mro),
2615            Self::Nushu => databake::quote!(icu_properties::props::Script::Nushu),
2616            Self::Sharada => databake::quote!(icu_properties::props::Script::Sharada),
2617            Self::SoraSompeng => databake::quote!(icu_properties::props::Script::SoraSompeng),
2618            Self::Takri => databake::quote!(icu_properties::props::Script::Takri),
2619            Self::Tangut => databake::quote!(icu_properties::props::Script::Tangut),
2620            Self::Woleai => databake::quote!(icu_properties::props::Script::Woleai),
2621            Self::AnatolianHieroglyphs => databake::quote!(icu_properties::props::Script::AnatolianHieroglyphs),
2622            Self::Khojki => databake::quote!(icu_properties::props::Script::Khojki),
2623            Self::Tirhuta => databake::quote!(icu_properties::props::Script::Tirhuta),
2624            Self::CaucasianAlbanian => databake::quote!(icu_properties::props::Script::CaucasianAlbanian),
2625            Self::Mahajani => databake::quote!(icu_properties::props::Script::Mahajani),
2626            Self::Ahom => databake::quote!(icu_properties::props::Script::Ahom),
2627            Self::Hatran => databake::quote!(icu_properties::props::Script::Hatran),
2628            Self::Modi => databake::quote!(icu_properties::props::Script::Modi),
2629            Self::Multani => databake::quote!(icu_properties::props::Script::Multani),
2630            Self::PauCinHau => databake::quote!(icu_properties::props::Script::PauCinHau),
2631            Self::Siddham => databake::quote!(icu_properties::props::Script::Siddham),
2632            Self::Adlam => databake::quote!(icu_properties::props::Script::Adlam),
2633            Self::Bhaiksuki => databake::quote!(icu_properties::props::Script::Bhaiksuki),
2634            Self::Marchen => databake::quote!(icu_properties::props::Script::Marchen),
2635            Self::Newa => databake::quote!(icu_properties::props::Script::Newa),
2636            Self::Osage => databake::quote!(icu_properties::props::Script::Osage),
2637            Self::HanWithBopomofo => databake::quote!(icu_properties::props::Script::HanWithBopomofo),
2638            Self::Jamo => databake::quote!(icu_properties::props::Script::Jamo),
2639            Self::SymbolsEmoji => databake::quote!(icu_properties::props::Script::SymbolsEmoji),
2640            Self::MasaramGondi => databake::quote!(icu_properties::props::Script::MasaramGondi),
2641            Self::Soyombo => databake::quote!(icu_properties::props::Script::Soyombo),
2642            Self::ZanabazarSquare => databake::quote!(icu_properties::props::Script::ZanabazarSquare),
2643            Self::Dogra => databake::quote!(icu_properties::props::Script::Dogra),
2644            Self::GunjalaGondi => databake::quote!(icu_properties::props::Script::GunjalaGondi),
2645            Self::Makasar => databake::quote!(icu_properties::props::Script::Makasar),
2646            Self::Medefaidrin => databake::quote!(icu_properties::props::Script::Medefaidrin),
2647            Self::HanifiRohingya => databake::quote!(icu_properties::props::Script::HanifiRohingya),
2648            Self::Sogdian => databake::quote!(icu_properties::props::Script::Sogdian),
2649            Self::OldSogdian => databake::quote!(icu_properties::props::Script::OldSogdian),
2650            Self::Elymaic => databake::quote!(icu_properties::props::Script::Elymaic),
2651            Self::NyiakengPuachueHmong => databake::quote!(icu_properties::props::Script::NyiakengPuachueHmong),
2652            Self::Nandinagari => databake::quote!(icu_properties::props::Script::Nandinagari),
2653            Self::Wancho => databake::quote!(icu_properties::props::Script::Wancho),
2654            Self::Chorasmian => databake::quote!(icu_properties::props::Script::Chorasmian),
2655            Self::DivesAkuru => databake::quote!(icu_properties::props::Script::DivesAkuru),
2656            Self::KhitanSmallScript => databake::quote!(icu_properties::props::Script::KhitanSmallScript),
2657            Self::Yezidi => databake::quote!(icu_properties::props::Script::Yezidi),
2658            Self::CyproMinoan => databake::quote!(icu_properties::props::Script::CyproMinoan),
2659            Self::OldUyghur => databake::quote!(icu_properties::props::Script::OldUyghur),
2660            Self::Tangsa => databake::quote!(icu_properties::props::Script::Tangsa),
2661            Self::Toto => databake::quote!(icu_properties::props::Script::Toto),
2662            Self::Vithkuqi => databake::quote!(icu_properties::props::Script::Vithkuqi),
2663            Self::Kawi => databake::quote!(icu_properties::props::Script::Kawi),
2664            Self::NagMundari => databake::quote!(icu_properties::props::Script::NagMundari),
2665            Self::ArabicNastaliq => databake::quote!(icu_properties::props::Script::ArabicNastaliq),
2666            Self::Garay => databake::quote!(icu_properties::props::Script::Garay),
2667            Self::GurungKhema => databake::quote!(icu_properties::props::Script::GurungKhema),
2668            Self::KiratRai => databake::quote!(icu_properties::props::Script::KiratRai),
2669            Self::OlOnal => databake::quote!(icu_properties::props::Script::OlOnal),
2670            Self::Sunuwar => databake::quote!(icu_properties::props::Script::Sunuwar),
2671            Self::Todhri => databake::quote!(icu_properties::props::Script::Todhri),
2672            Self::TuluTigalari => databake::quote!(icu_properties::props::Script::TuluTigalari),
2673            Self::BeriaErfe => databake::quote!(icu_properties::props::Script::BeriaErfe),
2674            Self::Sidetic => databake::quote!(icu_properties::props::Script::Sidetic),
2675            Self::TaiYo => databake::quote!(icu_properties::props::Script::TaiYo),
2676            Self::TolongSiki => databake::quote!(icu_properties::props::Script::TolongSiki),
2677            Self::TraditionalHanWithLatin => databake::quote!(icu_properties::props::Script::TraditionalHanWithLatin),
2678            Self(v) => databake::quote!(icu_properties::props::Script(#v)),
2679        }
2680    }
2681}
2682
2683
2684impl From<Script> for u16  {
2685    fn from(other: Script) -> Self {
2686        other.0
2687    }
2688}
2689
2690impl Script {
2691    /// Deprecated
2692    #[deprecated]
2693    pub const ALL_VALUES: &'static [Self] = &[
2694        Self::Common,
2695        Self::Inherited,
2696        Self::Arabic,
2697        Self::Armenian,
2698        Self::Bengali,
2699        Self::Bopomofo,
2700        Self::Cherokee,
2701        Self::Coptic,
2702        Self::Cyrillic,
2703        Self::Deseret,
2704        Self::Devanagari,
2705        Self::Ethiopic,
2706        Self::Georgian,
2707        Self::Gothic,
2708        Self::Greek,
2709        Self::Gujarati,
2710        Self::Gurmukhi,
2711        Self::Han,
2712        Self::Hangul,
2713        Self::Hebrew,
2714        Self::Hiragana,
2715        Self::Kannada,
2716        Self::Katakana,
2717        Self::Khmer,
2718        Self::Lao,
2719        Self::Latin,
2720        Self::Malayalam,
2721        Self::Mongolian,
2722        Self::Myanmar,
2723        Self::Ogham,
2724        Self::OldItalic,
2725        Self::Oriya,
2726        Self::Runic,
2727        Self::Sinhala,
2728        Self::Syriac,
2729        Self::Tamil,
2730        Self::Telugu,
2731        Self::Thaana,
2732        Self::Thai,
2733        Self::Tibetan,
2734        Self::CanadianAboriginal,
2735        Self::Yi,
2736        Self::Tagalog,
2737        Self::Hanunoo,
2738        Self::Buhid,
2739        Self::Tagbanwa,
2740        Self::Braille,
2741        Self::Cypriot,
2742        Self::Limbu,
2743        Self::LinearB,
2744        Self::Osmanya,
2745        Self::Shavian,
2746        Self::TaiLe,
2747        Self::Ugaritic,
2748        Self::KatakanaOrHiragana,
2749        Self::Buginese,
2750        Self::Glagolitic,
2751        Self::Kharoshthi,
2752        Self::SylotiNagri,
2753        Self::NewTaiLue,
2754        Self::Tifinagh,
2755        Self::OldPersian,
2756        Self::Balinese,
2757        Self::Batak,
2758        Self::BlisSymbols,
2759        Self::Brahmi,
2760        Self::Cham,
2761        Self::Cirth,
2762        Self::OldChurchSlavonicCyrillic,
2763        Self::DemoticEgyptian,
2764        Self::HieraticEgyptian,
2765        Self::EgyptianHieroglyphs,
2766        Self::Khutsuri,
2767        Self::SimplifiedHan,
2768        Self::TraditionalHan,
2769        Self::PahawhHmong,
2770        Self::OldHungarian,
2771        Self::HarappanIndus,
2772        Self::Javanese,
2773        Self::KayahLi,
2774        Self::LatinFraktur,
2775        Self::LatinGaelic,
2776        Self::Lepcha,
2777        Self::LinearA,
2778        Self::Mandaic,
2779        Self::MayanHieroglyphs,
2780        Self::MeroiticHieroglyphs,
2781        Self::Nko,
2782        Self::OldTurkic,
2783        Self::OldPermic,
2784        Self::PhagsPa,
2785        Self::Phoenician,
2786        Self::Miao,
2787        Self::Rongorongo,
2788        Self::Sarati,
2789        Self::EstrangeloSyriac,
2790        Self::WesternSyriac,
2791        Self::EasternSyriac,
2792        Self::Tengwar,
2793        Self::Vai,
2794        Self::VisibleSpeech,
2795        Self::Cuneiform,
2796        Self::UnwrittenLanguages,
2797        Self::Unknown,
2798        Self::Carian,
2799        Self::Japanese,
2800        Self::TaiTham,
2801        Self::Lycian,
2802        Self::Lydian,
2803        Self::OlChiki,
2804        Self::Rejang,
2805        Self::Saurashtra,
2806        Self::SignWriting,
2807        Self::Sundanese,
2808        Self::Moon,
2809        Self::MeeteiMayek,
2810        Self::ImperialAramaic,
2811        Self::Avestan,
2812        Self::Chakma,
2813        Self::Korean,
2814        Self::Kaithi,
2815        Self::Manichaean,
2816        Self::InscriptionalPahlavi,
2817        Self::PsalterPahlavi,
2818        Self::BookPahlavi,
2819        Self::InscriptionalParthian,
2820        Self::Samaritan,
2821        Self::TaiViet,
2822        Self::MathematicalNotation,
2823        Self::Symbols,
2824        Self::Bamum,
2825        Self::Lisu,
2826        Self::NakhiGeba,
2827        Self::OldSouthArabian,
2828        Self::BassaVah,
2829        Self::Duployan,
2830        Self::Elbasan,
2831        Self::Grantha,
2832        Self::Kpelle,
2833        Self::Loma,
2834        Self::MendeKikakui,
2835        Self::MeroiticCursive,
2836        Self::OldNorthArabian,
2837        Self::Nabataean,
2838        Self::Palmyrene,
2839        Self::Khudawadi,
2840        Self::WarangCiti,
2841        Self::Afaka,
2842        Self::Jurchen,
2843        Self::Mro,
2844        Self::Nushu,
2845        Self::Sharada,
2846        Self::SoraSompeng,
2847        Self::Takri,
2848        Self::Tangut,
2849        Self::Woleai,
2850        Self::AnatolianHieroglyphs,
2851        Self::Khojki,
2852        Self::Tirhuta,
2853        Self::CaucasianAlbanian,
2854        Self::Mahajani,
2855        Self::Ahom,
2856        Self::Hatran,
2857        Self::Modi,
2858        Self::Multani,
2859        Self::PauCinHau,
2860        Self::Siddham,
2861        Self::Adlam,
2862        Self::Bhaiksuki,
2863        Self::Marchen,
2864        Self::Newa,
2865        Self::Osage,
2866        Self::HanWithBopomofo,
2867        Self::Jamo,
2868        Self::SymbolsEmoji,
2869        Self::MasaramGondi,
2870        Self::Soyombo,
2871        Self::ZanabazarSquare,
2872        Self::Dogra,
2873        Self::GunjalaGondi,
2874        Self::Makasar,
2875        Self::Medefaidrin,
2876        Self::HanifiRohingya,
2877        Self::Sogdian,
2878        Self::OldSogdian,
2879        Self::Elymaic,
2880        Self::NyiakengPuachueHmong,
2881        Self::Nandinagari,
2882        Self::Wancho,
2883        Self::Chorasmian,
2884        Self::DivesAkuru,
2885        Self::KhitanSmallScript,
2886        Self::Yezidi,
2887        Self::CyproMinoan,
2888        Self::OldUyghur,
2889        Self::Tangsa,
2890        Self::Toto,
2891        Self::Vithkuqi,
2892        Self::Kawi,
2893        Self::NagMundari,
2894        Self::ArabicNastaliq,
2895        Self::Garay,
2896        Self::GurungKhema,
2897        Self::KiratRai,
2898        Self::OlOnal,
2899        Self::Sunuwar,
2900        Self::Todhri,
2901        Self::TuluTigalari,
2902        Self::BeriaErfe,
2903        Self::Sidetic,
2904        Self::TaiYo,
2905        Self::TolongSiki,
2906        Self::TraditionalHanWithLatin,
2907    ];
2908
2909    #[cfg(feature = "datagen")]
2910    #[doc(hidden)]
2911    pub fn names() -> impl Iterator<Item = (&'static str, Self)> {
2912        [
2913            ("Zyyy", Self::Common),
2914            ("Zinh", Self::Inherited),
2915            ("Arab", Self::Arabic),
2916            ("Armn", Self::Armenian),
2917            ("Beng", Self::Bengali),
2918            ("Bopo", Self::Bopomofo),
2919            ("Cher", Self::Cherokee),
2920            ("Copt", Self::Coptic),
2921            ("Cyrl", Self::Cyrillic),
2922            ("Dsrt", Self::Deseret),
2923            ("Deva", Self::Devanagari),
2924            ("Ethi", Self::Ethiopic),
2925            ("Geor", Self::Georgian),
2926            ("Goth", Self::Gothic),
2927            ("Grek", Self::Greek),
2928            ("Gujr", Self::Gujarati),
2929            ("Guru", Self::Gurmukhi),
2930            ("Hani", Self::Han),
2931            ("Hang", Self::Hangul),
2932            ("Hebr", Self::Hebrew),
2933            ("Hira", Self::Hiragana),
2934            ("Knda", Self::Kannada),
2935            ("Kana", Self::Katakana),
2936            ("Khmr", Self::Khmer),
2937            ("Laoo", Self::Lao),
2938            ("Latn", Self::Latin),
2939            ("Mlym", Self::Malayalam),
2940            ("Mong", Self::Mongolian),
2941            ("Mymr", Self::Myanmar),
2942            ("Ogam", Self::Ogham),
2943            ("Ital", Self::OldItalic),
2944            ("Orya", Self::Oriya),
2945            ("Runr", Self::Runic),
2946            ("Sinh", Self::Sinhala),
2947            ("Syrc", Self::Syriac),
2948            ("Taml", Self::Tamil),
2949            ("Telu", Self::Telugu),
2950            ("Thaa", Self::Thaana),
2951            ("Thai", Self::Thai),
2952            ("Tibt", Self::Tibetan),
2953            ("Cans", Self::CanadianAboriginal),
2954            ("Yiii", Self::Yi),
2955            ("Tglg", Self::Tagalog),
2956            ("Hano", Self::Hanunoo),
2957            ("Buhd", Self::Buhid),
2958            ("Tagb", Self::Tagbanwa),
2959            ("Brai", Self::Braille),
2960            ("Cprt", Self::Cypriot),
2961            ("Limb", Self::Limbu),
2962            ("Linb", Self::LinearB),
2963            ("Osma", Self::Osmanya),
2964            ("Shaw", Self::Shavian),
2965            ("Tale", Self::TaiLe),
2966            ("Ugar", Self::Ugaritic),
2967            ("Hrkt", Self::KatakanaOrHiragana),
2968            ("Bugi", Self::Buginese),
2969            ("Glag", Self::Glagolitic),
2970            ("Khar", Self::Kharoshthi),
2971            ("Sylo", Self::SylotiNagri),
2972            ("Talu", Self::NewTaiLue),
2973            ("Tfng", Self::Tifinagh),
2974            ("Xpeo", Self::OldPersian),
2975            ("Bali", Self::Balinese),
2976            ("Batk", Self::Batak),
2977            ("Blis", Self::BlisSymbols),
2978            ("Brah", Self::Brahmi),
2979            ("Cham", Self::Cham),
2980            ("Cirt", Self::Cirth),
2981            ("Cyrs", Self::OldChurchSlavonicCyrillic),
2982            ("Egyd", Self::DemoticEgyptian),
2983            ("Egyh", Self::HieraticEgyptian),
2984            ("Egyp", Self::EgyptianHieroglyphs),
2985            ("Geok", Self::Khutsuri),
2986            ("Hans", Self::SimplifiedHan),
2987            ("Hant", Self::TraditionalHan),
2988            ("Hmng", Self::PahawhHmong),
2989            ("Hung", Self::OldHungarian),
2990            ("Inds", Self::HarappanIndus),
2991            ("Java", Self::Javanese),
2992            ("Kali", Self::KayahLi),
2993            ("Latf", Self::LatinFraktur),
2994            ("Latg", Self::LatinGaelic),
2995            ("Lepc", Self::Lepcha),
2996            ("Lina", Self::LinearA),
2997            ("Mand", Self::Mandaic),
2998            ("Maya", Self::MayanHieroglyphs),
2999            ("Mero", Self::MeroiticHieroglyphs),
3000            ("Nkoo", Self::Nko),
3001            ("Orkh", Self::OldTurkic),
3002            ("Perm", Self::OldPermic),
3003            ("Phag", Self::PhagsPa),
3004            ("Phnx", Self::Phoenician),
3005            ("Plrd", Self::Miao),
3006            ("Roro", Self::Rongorongo),
3007            ("Sara", Self::Sarati),
3008            ("Syre", Self::EstrangeloSyriac),
3009            ("Syrj", Self::WesternSyriac),
3010            ("Syrn", Self::EasternSyriac),
3011            ("Teng", Self::Tengwar),
3012            ("Vaii", Self::Vai),
3013            ("Visp", Self::VisibleSpeech),
3014            ("Xsux", Self::Cuneiform),
3015            ("Zxxx", Self::UnwrittenLanguages),
3016            ("Zzzz", Self::Unknown),
3017            ("Cari", Self::Carian),
3018            ("Jpan", Self::Japanese),
3019            ("Lana", Self::TaiTham),
3020            ("Lyci", Self::Lycian),
3021            ("Lydi", Self::Lydian),
3022            ("Olck", Self::OlChiki),
3023            ("Rjng", Self::Rejang),
3024            ("Saur", Self::Saurashtra),
3025            ("Sgnw", Self::SignWriting),
3026            ("Sund", Self::Sundanese),
3027            ("Moon", Self::Moon),
3028            ("Mtei", Self::MeeteiMayek),
3029            ("Armi", Self::ImperialAramaic),
3030            ("Avst", Self::Avestan),
3031            ("Cakm", Self::Chakma),
3032            ("Kore", Self::Korean),
3033            ("Kthi", Self::Kaithi),
3034            ("Mani", Self::Manichaean),
3035            ("Phli", Self::InscriptionalPahlavi),
3036            ("Phlp", Self::PsalterPahlavi),
3037            ("Phlv", Self::BookPahlavi),
3038            ("Prti", Self::InscriptionalParthian),
3039            ("Samr", Self::Samaritan),
3040            ("Tavt", Self::TaiViet),
3041            ("Zmth", Self::MathematicalNotation),
3042            ("Zsym", Self::Symbols),
3043            ("Bamu", Self::Bamum),
3044            ("Lisu", Self::Lisu),
3045            ("Nkgb", Self::NakhiGeba),
3046            ("Sarb", Self::OldSouthArabian),
3047            ("Bass", Self::BassaVah),
3048            ("Dupl", Self::Duployan),
3049            ("Elba", Self::Elbasan),
3050            ("Gran", Self::Grantha),
3051            ("Kpel", Self::Kpelle),
3052            ("Loma", Self::Loma),
3053            ("Mend", Self::MendeKikakui),
3054            ("Merc", Self::MeroiticCursive),
3055            ("Narb", Self::OldNorthArabian),
3056            ("Nbat", Self::Nabataean),
3057            ("Palm", Self::Palmyrene),
3058            ("Sind", Self::Khudawadi),
3059            ("Wara", Self::WarangCiti),
3060            ("Afak", Self::Afaka),
3061            ("Jurc", Self::Jurchen),
3062            ("Mroo", Self::Mro),
3063            ("Nshu", Self::Nushu),
3064            ("Shrd", Self::Sharada),
3065            ("Sora", Self::SoraSompeng),
3066            ("Takr", Self::Takri),
3067            ("Tang", Self::Tangut),
3068            ("Wole", Self::Woleai),
3069            ("Hluw", Self::AnatolianHieroglyphs),
3070            ("Khoj", Self::Khojki),
3071            ("Tirh", Self::Tirhuta),
3072            ("Aghb", Self::CaucasianAlbanian),
3073            ("Mahj", Self::Mahajani),
3074            ("Ahom", Self::Ahom),
3075            ("Hatr", Self::Hatran),
3076            ("Modi", Self::Modi),
3077            ("Mult", Self::Multani),
3078            ("Pauc", Self::PauCinHau),
3079            ("Sidd", Self::Siddham),
3080            ("Adlm", Self::Adlam),
3081            ("Bhks", Self::Bhaiksuki),
3082            ("Marc", Self::Marchen),
3083            ("Newa", Self::Newa),
3084            ("Osge", Self::Osage),
3085            ("Hanb", Self::HanWithBopomofo),
3086            ("Jamo", Self::Jamo),
3087            ("Zsye", Self::SymbolsEmoji),
3088            ("Gonm", Self::MasaramGondi),
3089            ("Soyo", Self::Soyombo),
3090            ("Zanb", Self::ZanabazarSquare),
3091            ("Dogr", Self::Dogra),
3092            ("Gong", Self::GunjalaGondi),
3093            ("Maka", Self::Makasar),
3094            ("Medf", Self::Medefaidrin),
3095            ("Rohg", Self::HanifiRohingya),
3096            ("Sogd", Self::Sogdian),
3097            ("Sogo", Self::OldSogdian),
3098            ("Elym", Self::Elymaic),
3099            ("Hmnp", Self::NyiakengPuachueHmong),
3100            ("Nand", Self::Nandinagari),
3101            ("Wcho", Self::Wancho),
3102            ("Chrs", Self::Chorasmian),
3103            ("Diak", Self::DivesAkuru),
3104            ("Kits", Self::KhitanSmallScript),
3105            ("Yezi", Self::Yezidi),
3106            ("Cpmn", Self::CyproMinoan),
3107            ("Ougr", Self::OldUyghur),
3108            ("Tnsa", Self::Tangsa),
3109            ("Toto", Self::Toto),
3110            ("Vith", Self::Vithkuqi),
3111            ("Kawi", Self::Kawi),
3112            ("Nagm", Self::NagMundari),
3113            ("Aran", Self::ArabicNastaliq),
3114            ("Gara", Self::Garay),
3115            ("Gukh", Self::GurungKhema),
3116            ("Krai", Self::KiratRai),
3117            ("Onao", Self::OlOnal),
3118            ("Sunu", Self::Sunuwar),
3119            ("Todr", Self::Todhri),
3120            ("Tutg", Self::TuluTigalari),
3121            ("Berf", Self::BeriaErfe),
3122            ("Sidt", Self::Sidetic),
3123            ("Tayo", Self::TaiYo),
3124            ("Tols", Self::TolongSiki),
3125            ("Hntl", Self::TraditionalHanWithLatin),
3126        ].into_iter()
3127    }
3128}
3129
3130impl SentenceBreak {
3131    pub const Other: Self = Self(0);
3132    pub const XX: Self = Self::Other;
3133    pub const ATerm: Self = Self(1);
3134    pub const AT: Self = Self::ATerm;
3135    pub const Close: Self = Self(2);
3136    pub const CL: Self = Self::Close;
3137    pub const Format: Self = Self(3);
3138    pub const FO: Self = Self::Format;
3139    pub const Lower: Self = Self(4);
3140    pub const LO: Self = Self::Lower;
3141    pub const Numeric: Self = Self(5);
3142    pub const NU: Self = Self::Numeric;
3143    pub const OLetter: Self = Self(6);
3144    pub const LE: Self = Self::OLetter;
3145    pub const Sep: Self = Self(7);
3146    pub const SE: Self = Self::Sep;
3147    pub const Sp: Self = Self(8);
3148    pub const SP: Self = Self::Sp;
3149    pub const STerm: Self = Self(9);
3150    pub const ST: Self = Self::STerm;
3151    pub const Upper: Self = Self(10);
3152    pub const UP: Self = Self::Upper;
3153    pub const CR: Self = Self(11);
3154    pub const Extend: Self = Self(12);
3155    pub const EX: Self = Self::Extend;
3156    pub const LF: Self = Self(13);
3157    pub const SContinue: Self = Self(14);
3158    pub const SC: Self = Self::SContinue;
3159}
3160
3161#[cfg(feature = "datagen")]
3162impl databake::Bake for SentenceBreak {
3163    fn bake(&self, env: &databake::CrateEnv) -> databake::TokenStream {
3164        env.insert("icu_properties");
3165        match *self {
3166            Self::Other => databake::quote!(icu_properties::props::SentenceBreak::Other),
3167            Self::ATerm => databake::quote!(icu_properties::props::SentenceBreak::ATerm),
3168            Self::Close => databake::quote!(icu_properties::props::SentenceBreak::Close),
3169            Self::Format => databake::quote!(icu_properties::props::SentenceBreak::Format),
3170            Self::Lower => databake::quote!(icu_properties::props::SentenceBreak::Lower),
3171            Self::Numeric => databake::quote!(icu_properties::props::SentenceBreak::Numeric),
3172            Self::OLetter => databake::quote!(icu_properties::props::SentenceBreak::OLetter),
3173            Self::Sep => databake::quote!(icu_properties::props::SentenceBreak::Sep),
3174            Self::Sp => databake::quote!(icu_properties::props::SentenceBreak::Sp),
3175            Self::STerm => databake::quote!(icu_properties::props::SentenceBreak::STerm),
3176            Self::Upper => databake::quote!(icu_properties::props::SentenceBreak::Upper),
3177            Self::CR => databake::quote!(icu_properties::props::SentenceBreak::CR),
3178            Self::Extend => databake::quote!(icu_properties::props::SentenceBreak::Extend),
3179            Self::LF => databake::quote!(icu_properties::props::SentenceBreak::LF),
3180            Self::SContinue => databake::quote!(icu_properties::props::SentenceBreak::SContinue),
3181            Self(v) => databake::quote!(icu_properties::props::SentenceBreak(#v)),
3182        }
3183    }
3184}
3185
3186
3187impl From<SentenceBreak> for u16  {
3188    fn from(other: SentenceBreak) -> Self {
3189        other.0 as u16
3190    }
3191}
3192
3193impl SentenceBreak {
3194    /// Deprecated
3195    #[deprecated]
3196    pub const ALL_VALUES: &'static [Self] = &[
3197        Self::Other,
3198        Self::ATerm,
3199        Self::Close,
3200        Self::Format,
3201        Self::Lower,
3202        Self::Numeric,
3203        Self::OLetter,
3204        Self::Sep,
3205        Self::Sp,
3206        Self::STerm,
3207        Self::Upper,
3208        Self::CR,
3209        Self::Extend,
3210        Self::LF,
3211        Self::SContinue,
3212    ];
3213
3214    #[cfg(feature = "datagen")]
3215    #[doc(hidden)]
3216    pub fn names() -> impl Iterator<Item = (&'static str, Self)> {
3217        [
3218            ("XX", Self::Other),
3219            ("AT", Self::ATerm),
3220            ("CL", Self::Close),
3221            ("FO", Self::Format),
3222            ("LO", Self::Lower),
3223            ("NU", Self::Numeric),
3224            ("LE", Self::OLetter),
3225            ("SE", Self::Sep),
3226            ("SP", Self::Sp),
3227            ("ST", Self::STerm),
3228            ("UP", Self::Upper),
3229            ("CR", Self::CR),
3230            ("EX", Self::Extend),
3231            ("LF", Self::LF),
3232            ("SC", Self::SContinue),
3233        ].into_iter()
3234    }
3235}
3236
3237impl VerticalOrientation {
3238    pub const Rotated: Self = Self(0);
3239    pub const R: Self = Self::Rotated;
3240    pub const TransformedRotated: Self = Self(1);
3241    pub const Tr: Self = Self::TransformedRotated;
3242    pub const TransformedUpright: Self = Self(2);
3243    pub const Tu: Self = Self::TransformedUpright;
3244    pub const Upright: Self = Self(3);
3245    pub const U: Self = Self::Upright;
3246}
3247
3248#[cfg(feature = "datagen")]
3249impl databake::Bake for VerticalOrientation {
3250    fn bake(&self, env: &databake::CrateEnv) -> databake::TokenStream {
3251        env.insert("icu_properties");
3252        match *self {
3253            Self::Rotated => databake::quote!(icu_properties::props::VerticalOrientation::Rotated),
3254            Self::TransformedRotated => databake::quote!(icu_properties::props::VerticalOrientation::TransformedRotated),
3255            Self::TransformedUpright => databake::quote!(icu_properties::props::VerticalOrientation::TransformedUpright),
3256            Self::Upright => databake::quote!(icu_properties::props::VerticalOrientation::Upright),
3257            Self(v) => databake::quote!(icu_properties::props::VerticalOrientation(#v)),
3258        }
3259    }
3260}
3261
3262
3263impl From<VerticalOrientation> for u16  {
3264    fn from(other: VerticalOrientation) -> Self {
3265        other.0 as u16
3266    }
3267}
3268
3269impl VerticalOrientation {
3270    /// Deprecated
3271    #[deprecated]
3272    pub const ALL_VALUES: &'static [Self] = &[
3273        Self::Rotated,
3274        Self::TransformedRotated,
3275        Self::TransformedUpright,
3276        Self::Upright,
3277    ];
3278
3279    #[cfg(feature = "datagen")]
3280    #[doc(hidden)]
3281    pub fn names() -> impl Iterator<Item = (&'static str, Self)> {
3282        [
3283            ("R", Self::Rotated),
3284            ("Tr", Self::TransformedRotated),
3285            ("Tu", Self::TransformedUpright),
3286            ("U", Self::Upright),
3287        ].into_iter()
3288    }
3289}
3290
3291impl WordBreak {
3292    pub const Other: Self = Self(0);
3293    pub const XX: Self = Self::Other;
3294    pub const ALetter: Self = Self(1);
3295    pub const LE: Self = Self::ALetter;
3296    pub const Format: Self = Self(2);
3297    pub const FO: Self = Self::Format;
3298    pub const Katakana: Self = Self(3);
3299    pub const KA: Self = Self::Katakana;
3300    pub const MidLetter: Self = Self(4);
3301    pub const ML: Self = Self::MidLetter;
3302    pub const MidNum: Self = Self(5);
3303    pub const MN: Self = Self::MidNum;
3304    pub const Numeric: Self = Self(6);
3305    pub const NU: Self = Self::Numeric;
3306    pub const ExtendNumLet: Self = Self(7);
3307    pub const EX: Self = Self::ExtendNumLet;
3308    pub const CR: Self = Self(8);
3309    pub const Extend: Self = Self(9);
3310    pub const LF: Self = Self(10);
3311    pub const MidNumLet: Self = Self(11);
3312    pub const MB: Self = Self::MidNumLet;
3313    pub const Newline: Self = Self(12);
3314    pub const NL: Self = Self::Newline;
3315    pub const RegionalIndicator: Self = Self(13);
3316    pub const RI: Self = Self::RegionalIndicator;
3317    pub const HebrewLetter: Self = Self(14);
3318    pub const HL: Self = Self::HebrewLetter;
3319    pub const SingleQuote: Self = Self(15);
3320    pub const SQ: Self = Self::SingleQuote;
3321    pub const DoubleQuote: Self = Self(16);
3322    pub const DQ: Self = Self::DoubleQuote;
3323    pub const EBase: Self = Self(17);
3324    pub const EB: Self = Self::EBase;
3325    pub const EBaseGAZ: Self = Self(18);
3326    pub const EBG: Self = Self::EBaseGAZ;
3327    pub const EModifier: Self = Self(19);
3328    pub const EM: Self = Self::EModifier;
3329    pub const GlueAfterZwj: Self = Self(20);
3330    pub const GAZ: Self = Self::GlueAfterZwj;
3331    pub const ZWJ: Self = Self(21);
3332    pub const WSegSpace: Self = Self(22);
3333}
3334
3335#[cfg(feature = "datagen")]
3336impl databake::Bake for WordBreak {
3337    fn bake(&self, env: &databake::CrateEnv) -> databake::TokenStream {
3338        env.insert("icu_properties");
3339        match *self {
3340            Self::Other => databake::quote!(icu_properties::props::WordBreak::Other),
3341            Self::ALetter => databake::quote!(icu_properties::props::WordBreak::ALetter),
3342            Self::Format => databake::quote!(icu_properties::props::WordBreak::Format),
3343            Self::Katakana => databake::quote!(icu_properties::props::WordBreak::Katakana),
3344            Self::MidLetter => databake::quote!(icu_properties::props::WordBreak::MidLetter),
3345            Self::MidNum => databake::quote!(icu_properties::props::WordBreak::MidNum),
3346            Self::Numeric => databake::quote!(icu_properties::props::WordBreak::Numeric),
3347            Self::ExtendNumLet => databake::quote!(icu_properties::props::WordBreak::ExtendNumLet),
3348            Self::CR => databake::quote!(icu_properties::props::WordBreak::CR),
3349            Self::Extend => databake::quote!(icu_properties::props::WordBreak::Extend),
3350            Self::LF => databake::quote!(icu_properties::props::WordBreak::LF),
3351            Self::MidNumLet => databake::quote!(icu_properties::props::WordBreak::MidNumLet),
3352            Self::Newline => databake::quote!(icu_properties::props::WordBreak::Newline),
3353            Self::RegionalIndicator => databake::quote!(icu_properties::props::WordBreak::RegionalIndicator),
3354            Self::HebrewLetter => databake::quote!(icu_properties::props::WordBreak::HebrewLetter),
3355            Self::SingleQuote => databake::quote!(icu_properties::props::WordBreak::SingleQuote),
3356            Self::DoubleQuote => databake::quote!(icu_properties::props::WordBreak::DoubleQuote),
3357            Self::EBase => databake::quote!(icu_properties::props::WordBreak::EBase),
3358            Self::EBaseGAZ => databake::quote!(icu_properties::props::WordBreak::EBaseGAZ),
3359            Self::EModifier => databake::quote!(icu_properties::props::WordBreak::EModifier),
3360            Self::GlueAfterZwj => databake::quote!(icu_properties::props::WordBreak::GlueAfterZwj),
3361            Self::ZWJ => databake::quote!(icu_properties::props::WordBreak::ZWJ),
3362            Self::WSegSpace => databake::quote!(icu_properties::props::WordBreak::WSegSpace),
3363            Self(v) => databake::quote!(icu_properties::props::WordBreak(#v)),
3364        }
3365    }
3366}
3367
3368
3369impl From<WordBreak> for u16  {
3370    fn from(other: WordBreak) -> Self {
3371        other.0 as u16
3372    }
3373}
3374
3375impl WordBreak {
3376    /// Deprecated
3377    #[deprecated]
3378    pub const ALL_VALUES: &'static [Self] = &[
3379        Self::Other,
3380        Self::ALetter,
3381        Self::Format,
3382        Self::Katakana,
3383        Self::MidLetter,
3384        Self::MidNum,
3385        Self::Numeric,
3386        Self::ExtendNumLet,
3387        Self::CR,
3388        Self::Extend,
3389        Self::LF,
3390        Self::MidNumLet,
3391        Self::Newline,
3392        Self::RegionalIndicator,
3393        Self::HebrewLetter,
3394        Self::SingleQuote,
3395        Self::DoubleQuote,
3396        Self::EBase,
3397        Self::EBaseGAZ,
3398        Self::EModifier,
3399        Self::GlueAfterZwj,
3400        Self::ZWJ,
3401        Self::WSegSpace,
3402    ];
3403
3404    #[cfg(feature = "datagen")]
3405    #[doc(hidden)]
3406    pub fn names() -> impl Iterator<Item = (&'static str, Self)> {
3407        [
3408            ("XX", Self::Other),
3409            ("LE", Self::ALetter),
3410            ("FO", Self::Format),
3411            ("KA", Self::Katakana),
3412            ("ML", Self::MidLetter),
3413            ("MN", Self::MidNum),
3414            ("NU", Self::Numeric),
3415            ("EX", Self::ExtendNumLet),
3416            ("CR", Self::CR),
3417            ("Extend", Self::Extend),
3418            ("LF", Self::LF),
3419            ("MB", Self::MidNumLet),
3420            ("NL", Self::Newline),
3421            ("RI", Self::RegionalIndicator),
3422            ("HL", Self::HebrewLetter),
3423            ("SQ", Self::SingleQuote),
3424            ("DQ", Self::DoubleQuote),
3425            ("EB", Self::EBase),
3426            ("EBG", Self::EBaseGAZ),
3427            ("EM", Self::EModifier),
3428            ("GAZ", Self::GlueAfterZwj),
3429            ("ZWJ", Self::ZWJ),
3430            ("WSegSpace", Self::WSegSpace),
3431        ].into_iter()
3432    }
3433}