1#![allow(missing_docs)] #![allow(non_upper_case_globals)] use 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]
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]
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]
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)] impl GeneralCategory {
#[doc =
r" Attempt to construct the value from its corresponding integer,"]
#[doc = r" returning `None` if not possible"]
pub(crate) fn new_from_u8(value: u8) -> Option<Self> {
if <GeneralCategoryULE as
zerovec::ule::ULE>::validate_bytes(&[value]).is_ok() {
Some(zerovec::ule::AsULE::from_unaligned(GeneralCategoryULE(value)))
} else { None }
}
}#[zerovec::make_ule(GeneralCategoryULE)]
516#[cfg_attr(not(feature = "alloc"), zerovec::skip_derive(ZeroMapKV))]
517#[repr(u8)]
518#[allow(missing_docs)] pub 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]
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]
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]
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]
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]
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]
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]
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]
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]
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 pub const BlisSymbols: Self = Self(64);
2101 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 pub const Cirth: Self = Self(67);
2108 pub const Cirt: Self = Self::Cirth;
2110 pub const OldChurchSlavonicCyrillic: Self = Self(68);
2112 pub const Cyrs: Self = Self::OldChurchSlavonicCyrillic;
2114 pub const DemoticEgyptian: Self = Self(69);
2116 pub const Egyd: Self = Self::DemoticEgyptian;
2118 pub const HieraticEgyptian: Self = Self(70);
2120 pub const Egyh: Self = Self::HieraticEgyptian;
2122 pub const EgyptianHieroglyphs: Self = Self(71);
2123 pub const Egyp: Self = Self::EgyptianHieroglyphs;
2124 pub const Khutsuri: Self = Self(72);
2126 pub const Geok: Self = Self::Khutsuri;
2128 pub const SimplifiedHan: Self = Self(73);
2130 pub const Hans: Self = Self::SimplifiedHan;
2132 pub const TraditionalHan: Self = Self(74);
2134 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 pub const HarappanIndus: Self = Self(77);
2142 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 pub const LatinFraktur: Self = Self(80);
2150 pub const Latf: Self = Self::LatinFraktur;
2152 pub const LatinGaelic: Self = Self(81);
2154 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 pub const MayanHieroglyphs: Self = Self(85);
2164 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 pub const Rongorongo: Self = Self(93);
2182 pub const Roro: Self = Self::Rongorongo;
2184 pub const Sarati: Self = Self(94);
2186 pub const Sara: Self = Self::Sarati;
2188 pub const EstrangeloSyriac: Self = Self(95);
2190 pub const Syre: Self = Self::EstrangeloSyriac;
2192 pub const WesternSyriac: Self = Self(96);
2194 pub const Syrj: Self = Self::WesternSyriac;
2196 pub const EasternSyriac: Self = Self(97);
2198 pub const Syrn: Self = Self::EasternSyriac;
2200 pub const Tengwar: Self = Self(98);
2202 pub const Teng: Self = Self::Tengwar;
2204 pub const Vai: Self = Self(99);
2205 pub const Vaii: Self = Self::Vai;
2206 pub const VisibleSpeech: Self = Self(100);
2208 pub const Visp: Self = Self::VisibleSpeech;
2210 pub const Cuneiform: Self = Self(101);
2211 pub const Xsux: Self = Self::Cuneiform;
2212 pub const UnwrittenLanguages: Self = Self(102);
2214 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 pub const Japanese: Self = Self(105);
2222 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 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 pub const Korean: Self = Self(119);
2252 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 pub const BookPahlavi: Self = Self(124);
2264 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 pub const MathematicalNotation: Self = Self(128);
2274 pub const Zmth: Self = Self::MathematicalNotation;
2276 pub const Symbols: Self = Self(129);
2278 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 pub const NakhiGeba: Self = Self(132);
2285 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 pub const Kpelle: Self = Self(138);
2299 pub const Kpel: Self = Self::Kpelle;
2301 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 pub const Afaka: Self = Self(147);
2319 pub const Afak: Self = Self::Afaka;
2321 pub const Jurchen: Self = Self(148);
2323 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 pub const Woleai: Self = Self(155);
2339 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 pub const HanWithBopomofo: Self = Self(172);
2372 pub const Hanb: Self = Self::HanWithBopomofo;
2374 pub const Jamo: Self = Self(173);
2376 pub const SymbolsEmoji: Self = Self(174);
2378 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 pub const ArabicNastaliq: Self = Self(200);
2430 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 pub const TraditionalHanWithLatin: Self = Self(212);
2456 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]
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]
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]
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]
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}