1use crate::CodePointSetData;
15use crate::provider::*;
16#[cfg(doc)]
17use crate::{
18 CodePointMapData, PropertyParser,
19 props::{GeneralCategory, GeneralCategoryGroup, Script},
20 script,
21};
22use icu_provider::prelude::*;
23
24#[non_exhaustive]
31#[allow(missing_docs)]
32#[allow(dead_code)]
33#[derive(#[automatically_derived]#[allow(missing_docs)]
#[allow(dead_code)]
impl ::core::marker::Copy for BinaryProperty { }Copy, #[automatically_derived]#[doc(hidden)]#[allow(missing_docs)]
#[allow(dead_code)]
unsafe impl ::core::clone::TrivialClone for BinaryProperty { }
#[automatically_derived]#[allow(missing_docs)]
#[allow(dead_code)]
impl ::core::clone::Clone for BinaryProperty {
#[inline]
fn clone(&self) -> Self { *self }
}Clone, #[automatically_derived]#[allow(missing_docs)]
#[allow(dead_code)]
impl ::core::marker::StructuralPartialEq for BinaryProperty { }
#[automatically_derived]#[allow(missing_docs)]
#[allow(dead_code)]
impl ::core::cmp::PartialEq for BinaryProperty {
#[inline]
fn eq(&self, other: &Self) -> bool {
::core::intrinsics::discriminant_value(self) ==
::core::intrinsics::discriminant_value(other)
}
}PartialEq, #[automatically_derived]#[allow(missing_docs)]
#[allow(dead_code)]
impl ::core::cmp::Eq for BinaryProperty { }Eq, #[automatically_derived]#[allow(missing_docs)]
#[allow(dead_code)]
impl ::core::cmp::PartialOrd for BinaryProperty {
#[inline]
fn partial_cmp(&self, other: &Self)
-> ::core::option::Option<::core::cmp::Ordering> {
::core::option::Option::Some(::core::cmp::Ord::cmp(self, other))
}
}PartialOrd, #[automatically_derived]#[allow(missing_docs)]
#[allow(dead_code)]
impl ::core::cmp::Ord for BinaryProperty {
#[inline]
fn cmp(&self, other: &Self) -> ::core::cmp::Ordering {
::core::cmp::Ord::cmp(&::core::intrinsics::discriminant_value(self),
&::core::intrinsics::discriminant_value(other))
}
}Ord, #[automatically_derived]#[allow(missing_docs)]
#[allow(dead_code)]
impl ::core::hash::Hash for BinaryProperty {
#[inline]
fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) {
::core::hash::Hash::hash(&::core::intrinsics::discriminant_value(self),
state)
}
}Hash, #[automatically_derived]#[allow(missing_docs)]
#[allow(dead_code)]
impl ::core::fmt::Debug for BinaryProperty {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::debug_c_like_enum_write_str(f,
"Alnum Alphabetic AsciiHexDigit BidiControl BidiMirrored Blank Cased CaseIgnorable CaseSensitive ChangesWhenCasefolded ChangesWhenCasemapped ChangesWhenLowercased ChangesWhenNfkcCasefolded ChangesWhenTitlecased ChangesWhenUppercased Dash DefaultIgnorableCodePoint Deprecated Diacritic Emoji EmojiComponent EmojiModifier EmojiModifierBase EmojiPresentation ExtendedPictographic Extender FullCompositionExclusion Graph GraphemeBase GraphemeExtend GraphemeLink HexDigit Hyphen IdCompatMathContinue IdCompatMathStart IdContinue Ideographic IdsBinaryOperator IdStart IdsTrinaryOperator IdsUnaryOperator JoinControl LogicalOrderException Lowercase Math ModifierCombiningMark NfcInert NfdInert NfkcInert NfkdInert NoncharacterCodePoint PatternSyntax PatternWhiteSpace PrependedConcatenationMark Print QuotationMark Radical RegionalIndicator SegmentStarter SentenceTerminal SoftDotted TerminalPunctuation UnifiedIdeograph Uppercase VariationSelector WhiteSpace Xdigit XidContinue XidStart",
match self {
BinaryProperty::Alnum => 0usize,
BinaryProperty::Alphabetic => 6usize,
BinaryProperty::AsciiHexDigit => 17usize,
BinaryProperty::BidiControl => 31usize,
BinaryProperty::BidiMirrored => 43usize,
BinaryProperty::Blank => 56usize,
BinaryProperty::Cased => 62usize,
BinaryProperty::CaseIgnorable => 68usize,
BinaryProperty::CaseSensitive => 82usize,
BinaryProperty::ChangesWhenCasefolded => 96usize,
BinaryProperty::ChangesWhenCasemapped => 118usize,
BinaryProperty::ChangesWhenLowercased => 140usize,
BinaryProperty::ChangesWhenNfkcCasefolded => 162usize,
BinaryProperty::ChangesWhenTitlecased => 188usize,
BinaryProperty::ChangesWhenUppercased => 210usize,
BinaryProperty::Dash => 232usize,
BinaryProperty::DefaultIgnorableCodePoint => 237usize,
BinaryProperty::Deprecated => 263usize,
BinaryProperty::Diacritic => 274usize,
BinaryProperty::Emoji => 284usize,
BinaryProperty::EmojiComponent => 290usize,
BinaryProperty::EmojiModifier => 305usize,
BinaryProperty::EmojiModifierBase => 319usize,
BinaryProperty::EmojiPresentation => 337usize,
BinaryProperty::ExtendedPictographic => 355usize,
BinaryProperty::Extender => 376usize,
BinaryProperty::FullCompositionExclusion => 385usize,
BinaryProperty::Graph => 410usize,
BinaryProperty::GraphemeBase => 416usize,
BinaryProperty::GraphemeExtend => 429usize,
BinaryProperty::GraphemeLink => 444usize,
BinaryProperty::HexDigit => 457usize,
BinaryProperty::Hyphen => 466usize,
BinaryProperty::IdCompatMathContinue => 473usize,
BinaryProperty::IdCompatMathStart => 494usize,
BinaryProperty::IdContinue => 512usize,
BinaryProperty::Ideographic => 523usize,
BinaryProperty::IdsBinaryOperator => 535usize,
BinaryProperty::IdStart => 553usize,
BinaryProperty::IdsTrinaryOperator => 561usize,
BinaryProperty::IdsUnaryOperator => 580usize,
BinaryProperty::JoinControl => 597usize,
BinaryProperty::LogicalOrderException => 609usize,
BinaryProperty::Lowercase => 631usize,
BinaryProperty::Math => 641usize,
BinaryProperty::ModifierCombiningMark => 646usize,
BinaryProperty::NfcInert => 668usize,
BinaryProperty::NfdInert => 677usize,
BinaryProperty::NfkcInert => 686usize,
BinaryProperty::NfkdInert => 696usize,
BinaryProperty::NoncharacterCodePoint => 706usize,
BinaryProperty::PatternSyntax => 728usize,
BinaryProperty::PatternWhiteSpace => 742usize,
BinaryProperty::PrependedConcatenationMark => 760usize,
BinaryProperty::Print => 787usize,
BinaryProperty::QuotationMark => 793usize,
BinaryProperty::Radical => 807usize,
BinaryProperty::RegionalIndicator => 815usize,
BinaryProperty::SegmentStarter => 833usize,
BinaryProperty::SentenceTerminal => 848usize,
BinaryProperty::SoftDotted => 865usize,
BinaryProperty::TerminalPunctuation => 876usize,
BinaryProperty::UnifiedIdeograph => 896usize,
BinaryProperty::Uppercase => 913usize,
BinaryProperty::VariationSelector => 923usize,
BinaryProperty::WhiteSpace => 941usize,
BinaryProperty::Xdigit => 952usize,
BinaryProperty::XidContinue => 959usize,
BinaryProperty::XidStart => 971usize,
})
}
}Debug)]
34enum BinaryProperty {
35 Alnum = 44,
36 Alphabetic = 0,
37 AsciiHexDigit = 1,
38 BidiControl = 2,
39 BidiMirrored = 3,
40 Blank = 45,
41 Cased = 49,
42 CaseIgnorable = 50,
43 CaseSensitive = 34,
44 ChangesWhenCasefolded = 54,
45 ChangesWhenCasemapped = 55,
46 ChangesWhenLowercased = 51,
47 ChangesWhenNfkcCasefolded = 56,
48 ChangesWhenTitlecased = 53,
49 ChangesWhenUppercased = 52,
50 Dash = 4,
51 DefaultIgnorableCodePoint = 5,
52 Deprecated = 6,
53 Diacritic = 7,
54 Emoji = 57,
55 EmojiComponent = 61,
56 EmojiModifier = 59,
57 EmojiModifierBase = 60,
58 EmojiPresentation = 58,
59 ExtendedPictographic = 64,
60 Extender = 8,
61 FullCompositionExclusion = 9,
62 Graph = 46,
63 GraphemeBase = 10,
64 GraphemeExtend = 11,
65 GraphemeLink = 12,
66 HexDigit = 13,
67 Hyphen = 14,
68 IdCompatMathContinue = 65,
69 IdCompatMathStart = 66,
70 IdContinue = 15,
71 Ideographic = 17,
72 IdsBinaryOperator = 18,
73 IdStart = 16,
74 IdsTrinaryOperator = 19,
75 IdsUnaryOperator = 67,
76 JoinControl = 20,
77 LogicalOrderException = 21,
78 Lowercase = 22,
79 Math = 23,
80 ModifierCombiningMark = 68,
81 NfcInert = 39,
82 NfdInert = 37,
83 NfkcInert = 40,
84 NfkdInert = 38,
85 NoncharacterCodePoint = 24,
86 PatternSyntax = 42,
87 PatternWhiteSpace = 43,
88 PrependedConcatenationMark = 63,
89 Print = 47,
90 QuotationMark = 25,
91 Radical = 26,
92 RegionalIndicator = 62,
93 SegmentStarter = 41,
94 SentenceTerminal = 35,
95 SoftDotted = 27,
96 TerminalPunctuation = 28,
97 UnifiedIdeograph = 29,
98 Uppercase = 30,
99 VariationSelector = 36,
100 WhiteSpace = 31,
101 Xdigit = 48,
102 XidContinue = 32,
103 XidStart = 33,
104}
105
106#[non_exhaustive]
113#[derive(#[automatically_derived]#[allow(dead_code)]
#[allow(missing_docs)]
impl ::core::marker::Copy for StringBinaryProperty { }Copy, #[automatically_derived]#[doc(hidden)]#[allow(dead_code)]
#[allow(missing_docs)]
unsafe impl ::core::clone::TrivialClone for StringBinaryProperty { }
#[automatically_derived]#[allow(dead_code)]
#[allow(missing_docs)]
impl ::core::clone::Clone for StringBinaryProperty {
#[inline]
fn clone(&self) -> Self { *self }
}Clone, #[automatically_derived]#[allow(dead_code)]
#[allow(missing_docs)]
impl ::core::marker::StructuralPartialEq for StringBinaryProperty { }
#[automatically_derived]#[allow(dead_code)]
#[allow(missing_docs)]
impl ::core::cmp::PartialEq for StringBinaryProperty {
#[inline]
fn eq(&self, other: &Self) -> bool {
::core::intrinsics::discriminant_value(self) ==
::core::intrinsics::discriminant_value(other)
}
}PartialEq, #[automatically_derived]#[allow(dead_code)]
#[allow(missing_docs)]
impl ::core::cmp::Eq for StringBinaryProperty { }Eq, #[automatically_derived]#[allow(dead_code)]
#[allow(missing_docs)]
impl ::core::cmp::PartialOrd for StringBinaryProperty {
#[inline]
fn partial_cmp(&self, other: &Self)
-> ::core::option::Option<::core::cmp::Ordering> {
::core::option::Option::Some(::core::cmp::Ord::cmp(self, other))
}
}PartialOrd, #[automatically_derived]#[allow(dead_code)]
#[allow(missing_docs)]
impl ::core::cmp::Ord for StringBinaryProperty {
#[inline]
fn cmp(&self, other: &Self) -> ::core::cmp::Ordering {
::core::cmp::Ord::cmp(&::core::intrinsics::discriminant_value(self),
&::core::intrinsics::discriminant_value(other))
}
}Ord, #[automatically_derived]#[allow(dead_code)]
#[allow(missing_docs)]
impl ::core::hash::Hash for StringBinaryProperty {
#[inline]
fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) {
::core::hash::Hash::hash(&::core::intrinsics::discriminant_value(self),
state)
}
}Hash, #[automatically_derived]#[allow(dead_code)]
#[allow(missing_docs)]
impl ::core::fmt::Debug for StringBinaryProperty {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::debug_c_like_enum_write_str(f,
"BasicEmoji EmojiKeycapSequence RgiEmoji RgiEmojiFlagSequence RgiEmojiModifierSequence RgiEmojiTagSequence RgiEmojiZWJSequence",
match self {
StringBinaryProperty::BasicEmoji => 0usize,
StringBinaryProperty::EmojiKeycapSequence => 11usize,
StringBinaryProperty::RgiEmoji => 31usize,
StringBinaryProperty::RgiEmojiFlagSequence => 40usize,
StringBinaryProperty::RgiEmojiModifierSequence => 61usize,
StringBinaryProperty::RgiEmojiTagSequence => 86usize,
StringBinaryProperty::RgiEmojiZWJSequence => 106usize,
})
}
}Debug)]
114#[allow(dead_code)]
115#[allow(missing_docs)]
116enum StringBinaryProperty {
117 BasicEmoji = 65,
118 EmojiKeycapSequence = 66,
119 RgiEmoji = 71,
120 RgiEmojiFlagSequence = 68,
121 RgiEmojiModifierSequence = 67,
122 RgiEmojiTagSequence = 69,
123 RgiEmojiZWJSequence = 70,
124}
125
126#[non_exhaustive]
133#[derive(#[automatically_derived]#[allow(dead_code)]
#[allow(missing_docs)]
impl ::core::marker::Copy for EnumeratedProperty { }Copy, #[automatically_derived]#[doc(hidden)]#[allow(dead_code)]
#[allow(missing_docs)]
unsafe impl ::core::clone::TrivialClone for EnumeratedProperty { }
#[automatically_derived]#[allow(dead_code)]
#[allow(missing_docs)]
impl ::core::clone::Clone for EnumeratedProperty {
#[inline]
fn clone(&self) -> Self { *self }
}Clone, #[automatically_derived]#[allow(dead_code)]
#[allow(missing_docs)]
impl ::core::marker::StructuralPartialEq for EnumeratedProperty { }
#[automatically_derived]#[allow(dead_code)]
#[allow(missing_docs)]
impl ::core::cmp::PartialEq for EnumeratedProperty {
#[inline]
fn eq(&self, other: &Self) -> bool {
::core::intrinsics::discriminant_value(self) ==
::core::intrinsics::discriminant_value(other)
}
}PartialEq, #[automatically_derived]#[allow(dead_code)]
#[allow(missing_docs)]
impl ::core::cmp::Eq for EnumeratedProperty { }Eq, #[automatically_derived]#[allow(dead_code)]
#[allow(missing_docs)]
impl ::core::cmp::PartialOrd for EnumeratedProperty {
#[inline]
fn partial_cmp(&self, other: &Self)
-> ::core::option::Option<::core::cmp::Ordering> {
::core::option::Option::Some(::core::cmp::Ord::cmp(self, other))
}
}PartialOrd, #[automatically_derived]#[allow(dead_code)]
#[allow(missing_docs)]
impl ::core::cmp::Ord for EnumeratedProperty {
#[inline]
fn cmp(&self, other: &Self) -> ::core::cmp::Ordering {
::core::cmp::Ord::cmp(&::core::intrinsics::discriminant_value(self),
&::core::intrinsics::discriminant_value(other))
}
}Ord, #[automatically_derived]#[allow(dead_code)]
#[allow(missing_docs)]
impl ::core::hash::Hash for EnumeratedProperty {
#[inline]
fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) {
::core::hash::Hash::hash(&::core::intrinsics::discriminant_value(self),
state)
}
}Hash, #[automatically_derived]#[allow(dead_code)]
#[allow(missing_docs)]
impl ::core::fmt::Debug for EnumeratedProperty {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::debug_c_like_enum_write_str(f,
"BidiClass BidiPairedBracketType Block CombiningClass DecompositionType EastAsianWidth GeneralCategory GraphemeClusterBreak HangulSyllableType IndicConjunctBreak IndicPositionalCategory IndicSyllabicCategory JoiningGroup JoiningType LeadCanonicalCombiningClass LineBreak NFCQuickCheck NFDQuickCheck NFKCQuickCheck NFKDQuickCheck NumericType Script SentenceBreak TrailCanonicalCombiningClass VerticalOrientation WordBreak",
match self {
EnumeratedProperty::BidiClass => 0usize,
EnumeratedProperty::BidiPairedBracketType => 10usize,
EnumeratedProperty::Block => 32usize,
EnumeratedProperty::CombiningClass => 38usize,
EnumeratedProperty::DecompositionType => 53usize,
EnumeratedProperty::EastAsianWidth => 71usize,
EnumeratedProperty::GeneralCategory => 86usize,
EnumeratedProperty::GraphemeClusterBreak => 102usize,
EnumeratedProperty::HangulSyllableType => 123usize,
EnumeratedProperty::IndicConjunctBreak => 142usize,
EnumeratedProperty::IndicPositionalCategory => 161usize,
EnumeratedProperty::IndicSyllabicCategory => 185usize,
EnumeratedProperty::JoiningGroup => 207usize,
EnumeratedProperty::JoiningType => 220usize,
EnumeratedProperty::LeadCanonicalCombiningClass => 232usize,
EnumeratedProperty::LineBreak => 260usize,
EnumeratedProperty::NFCQuickCheck => 270usize,
EnumeratedProperty::NFDQuickCheck => 284usize,
EnumeratedProperty::NFKCQuickCheck => 298usize,
EnumeratedProperty::NFKDQuickCheck => 313usize,
EnumeratedProperty::NumericType => 328usize,
EnumeratedProperty::Script => 340usize,
EnumeratedProperty::SentenceBreak => 347usize,
EnumeratedProperty::TrailCanonicalCombiningClass => 361usize,
EnumeratedProperty::VerticalOrientation => 390usize,
EnumeratedProperty::WordBreak => 410usize,
})
}
}Debug)]
134#[allow(dead_code)]
135#[allow(missing_docs)]
136enum EnumeratedProperty {
137 BidiClass = 0x1000,
138 BidiPairedBracketType = 0x1015,
139 Block = 0x1001,
140 CombiningClass = 0x1002,
141 DecompositionType = 0x1003,
142 EastAsianWidth = 0x1004,
143 GeneralCategory = 0x1005,
144 GraphemeClusterBreak = 0x1012,
145 HangulSyllableType = 0x100B,
146 IndicConjunctBreak = 0x101A,
147 IndicPositionalCategory = 0x1016,
148 IndicSyllabicCategory = 0x1017,
149 JoiningGroup = 0x1006,
150 JoiningType = 0x1007,
151 LeadCanonicalCombiningClass = 0x1010,
152 LineBreak = 0x1008,
153 NFCQuickCheck = 0x100E,
154 NFDQuickCheck = 0x100C,
155 NFKCQuickCheck = 0x100F,
156 NFKDQuickCheck = 0x100D,
157 NumericType = 0x1009,
158 Script = 0x100A,
159 SentenceBreak = 0x1013,
160 TrailCanonicalCombiningClass = 0x1011,
161 VerticalOrientation = 0x1018,
162 WordBreak = 0x1014,
163}
164
165#[non_exhaustive]
172#[derive(#[automatically_derived]#[allow(dead_code)]
#[allow(missing_docs)]
impl ::core::marker::Copy for MaskProperty { }Copy, #[automatically_derived]#[doc(hidden)]#[allow(dead_code)]
#[allow(missing_docs)]
unsafe impl ::core::clone::TrivialClone for MaskProperty { }
#[automatically_derived]#[allow(dead_code)]
#[allow(missing_docs)]
impl ::core::clone::Clone for MaskProperty {
#[inline]
fn clone(&self) -> Self { *self }
}Clone, #[automatically_derived]#[allow(dead_code)]
#[allow(missing_docs)]
impl ::core::marker::StructuralPartialEq for MaskProperty { }
#[automatically_derived]#[allow(dead_code)]
#[allow(missing_docs)]
impl ::core::cmp::PartialEq for MaskProperty {
#[inline]
fn eq(&self, other: &Self) -> bool { true }
}PartialEq, #[automatically_derived]#[allow(dead_code)]
#[allow(missing_docs)]
impl ::core::cmp::Eq for MaskProperty { }Eq, #[automatically_derived]#[allow(dead_code)]
#[allow(missing_docs)]
impl ::core::cmp::PartialOrd for MaskProperty {
#[inline]
fn partial_cmp(&self, other: &Self)
-> ::core::option::Option<::core::cmp::Ordering> {
::core::option::Option::Some(::core::cmp::Ordering::Equal)
}
}PartialOrd, #[automatically_derived]#[allow(dead_code)]
#[allow(missing_docs)]
impl ::core::cmp::Ord for MaskProperty {
#[inline]
fn cmp(&self, other: &Self) -> ::core::cmp::Ordering {
::core::cmp::Ordering::Equal
}
}Ord, #[automatically_derived]#[allow(dead_code)]
#[allow(missing_docs)]
impl ::core::hash::Hash for MaskProperty {
#[inline]
fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) {}
}Hash, #[automatically_derived]#[allow(dead_code)]
#[allow(missing_docs)]
impl ::core::fmt::Debug for MaskProperty {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "GeneralCategoryMask")
}
}Debug)]
173#[allow(dead_code)]
174#[allow(missing_docs)]
175enum MaskProperty {
176 GeneralCategoryMask = 0x2000,
177}
178
179#[non_exhaustive]
186#[derive(#[automatically_derived]#[allow(dead_code)]
#[allow(missing_docs)]
impl ::core::marker::Copy for NumericProperty { }Copy, #[automatically_derived]#[doc(hidden)]#[allow(dead_code)]
#[allow(missing_docs)]
unsafe impl ::core::clone::TrivialClone for NumericProperty { }
#[automatically_derived]#[allow(dead_code)]
#[allow(missing_docs)]
impl ::core::clone::Clone for NumericProperty {
#[inline]
fn clone(&self) -> Self { *self }
}Clone, #[automatically_derived]#[allow(dead_code)]
#[allow(missing_docs)]
impl ::core::marker::StructuralPartialEq for NumericProperty { }
#[automatically_derived]#[allow(dead_code)]
#[allow(missing_docs)]
impl ::core::cmp::PartialEq for NumericProperty {
#[inline]
fn eq(&self, other: &Self) -> bool { true }
}PartialEq, #[automatically_derived]#[allow(dead_code)]
#[allow(missing_docs)]
impl ::core::cmp::Eq for NumericProperty { }Eq, #[automatically_derived]#[allow(dead_code)]
#[allow(missing_docs)]
impl ::core::cmp::PartialOrd for NumericProperty {
#[inline]
fn partial_cmp(&self, other: &Self)
-> ::core::option::Option<::core::cmp::Ordering> {
::core::option::Option::Some(::core::cmp::Ordering::Equal)
}
}PartialOrd, #[automatically_derived]#[allow(dead_code)]
#[allow(missing_docs)]
impl ::core::cmp::Ord for NumericProperty {
#[inline]
fn cmp(&self, other: &Self) -> ::core::cmp::Ordering {
::core::cmp::Ordering::Equal
}
}Ord, #[automatically_derived]#[allow(dead_code)]
#[allow(missing_docs)]
impl ::core::hash::Hash for NumericProperty {
#[inline]
fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) {}
}Hash, #[automatically_derived]#[allow(dead_code)]
#[allow(missing_docs)]
impl ::core::fmt::Debug for NumericProperty {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "NumericValue")
}
}Debug)]
187#[allow(dead_code)]
188#[allow(missing_docs)]
189enum NumericProperty {
190 NumericValue = 0x3000,
191}
192
193#[non_exhaustive]
200#[derive(#[automatically_derived]#[allow(dead_code)]
#[allow(missing_docs)]
impl ::core::marker::Copy for StringProperty { }Copy, #[automatically_derived]#[doc(hidden)]#[allow(dead_code)]
#[allow(missing_docs)]
unsafe impl ::core::clone::TrivialClone for StringProperty { }
#[automatically_derived]#[allow(dead_code)]
#[allow(missing_docs)]
impl ::core::clone::Clone for StringProperty {
#[inline]
fn clone(&self) -> Self { *self }
}Clone, #[automatically_derived]#[allow(dead_code)]
#[allow(missing_docs)]
impl ::core::marker::StructuralPartialEq for StringProperty { }
#[automatically_derived]#[allow(dead_code)]
#[allow(missing_docs)]
impl ::core::cmp::PartialEq for StringProperty {
#[inline]
fn eq(&self, other: &Self) -> bool {
::core::intrinsics::discriminant_value(self) ==
::core::intrinsics::discriminant_value(other)
}
}PartialEq, #[automatically_derived]#[allow(dead_code)]
#[allow(missing_docs)]
impl ::core::cmp::Eq for StringProperty { }Eq, #[automatically_derived]#[allow(dead_code)]
#[allow(missing_docs)]
impl ::core::cmp::PartialOrd for StringProperty {
#[inline]
fn partial_cmp(&self, other: &Self)
-> ::core::option::Option<::core::cmp::Ordering> {
::core::option::Option::Some(::core::cmp::Ord::cmp(self, other))
}
}PartialOrd, #[automatically_derived]#[allow(dead_code)]
#[allow(missing_docs)]
impl ::core::cmp::Ord for StringProperty {
#[inline]
fn cmp(&self, other: &Self) -> ::core::cmp::Ordering {
::core::cmp::Ord::cmp(&::core::intrinsics::discriminant_value(self),
&::core::intrinsics::discriminant_value(other))
}
}Ord, #[automatically_derived]#[allow(dead_code)]
#[allow(missing_docs)]
impl ::core::hash::Hash for StringProperty {
#[inline]
fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) {
::core::hash::Hash::hash(&::core::intrinsics::discriminant_value(self),
state)
}
}Hash, #[automatically_derived]#[allow(dead_code)]
#[allow(missing_docs)]
impl ::core::fmt::Debug for StringProperty {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::debug_c_like_enum_write_str(f,
"Age BidiMirroringGlyph BidiPairedBracket CaseFolding ISOComment LowercaseMapping Name SimpleCaseFolding SimpleLowercaseMapping SimpleTitlecaseMapping SimpleUppercaseMapping TitlecaseMapping Unicode1Name UppercaseMapping",
match self {
StringProperty::Age => 0usize,
StringProperty::BidiMirroringGlyph => 4usize,
StringProperty::BidiPairedBracket => 23usize,
StringProperty::CaseFolding => 41usize,
StringProperty::ISOComment => 53usize,
StringProperty::LowercaseMapping => 64usize,
StringProperty::Name => 81usize,
StringProperty::SimpleCaseFolding => 86usize,
StringProperty::SimpleLowercaseMapping => 104usize,
StringProperty::SimpleTitlecaseMapping => 127usize,
StringProperty::SimpleUppercaseMapping => 150usize,
StringProperty::TitlecaseMapping => 173usize,
StringProperty::Unicode1Name => 190usize,
StringProperty::UppercaseMapping => 203usize,
})
}
}Debug)]
201#[allow(dead_code)]
202#[allow(missing_docs)]
203enum StringProperty {
204 Age = 0x4000,
205 BidiMirroringGlyph = 0x4001,
206 BidiPairedBracket = 0x400D,
207 CaseFolding = 0x4002,
208 ISOComment = 0x4003,
209 LowercaseMapping = 0x4004,
210 Name = 0x4005,
211 SimpleCaseFolding = 0x4006,
212 SimpleLowercaseMapping = 0x4007,
213 SimpleTitlecaseMapping = 0x4008,
214 SimpleUppercaseMapping = 0x4009,
215 TitlecaseMapping = 0x400A,
216 Unicode1Name = 0x400B,
217 UppercaseMapping = 0x400C,
218}
219
220#[non_exhaustive]
221#[derive(#[automatically_derived]#[allow(dead_code)]
#[allow(missing_docs)]
impl ::core::marker::Copy for MiscProperty { }Copy, #[automatically_derived]#[doc(hidden)]#[allow(dead_code)]
#[allow(missing_docs)]
unsafe impl ::core::clone::TrivialClone for MiscProperty { }
#[automatically_derived]#[allow(dead_code)]
#[allow(missing_docs)]
impl ::core::clone::Clone for MiscProperty {
#[inline]
fn clone(&self) -> Self { *self }
}Clone, #[automatically_derived]#[allow(dead_code)]
#[allow(missing_docs)]
impl ::core::marker::StructuralPartialEq for MiscProperty { }
#[automatically_derived]#[allow(dead_code)]
#[allow(missing_docs)]
impl ::core::cmp::PartialEq for MiscProperty {
#[inline]
fn eq(&self, other: &Self) -> bool { true }
}PartialEq, #[automatically_derived]#[allow(dead_code)]
#[allow(missing_docs)]
impl ::core::cmp::Eq for MiscProperty { }Eq, #[automatically_derived]#[allow(dead_code)]
#[allow(missing_docs)]
impl ::core::cmp::PartialOrd for MiscProperty {
#[inline]
fn partial_cmp(&self, other: &Self)
-> ::core::option::Option<::core::cmp::Ordering> {
::core::option::Option::Some(::core::cmp::Ordering::Equal)
}
}PartialOrd, #[automatically_derived]#[allow(dead_code)]
#[allow(missing_docs)]
impl ::core::cmp::Ord for MiscProperty {
#[inline]
fn cmp(&self, other: &Self) -> ::core::cmp::Ordering {
::core::cmp::Ordering::Equal
}
}Ord, #[automatically_derived]#[allow(dead_code)]
#[allow(missing_docs)]
impl ::core::hash::Hash for MiscProperty {
#[inline]
fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) {}
}Hash, #[automatically_derived]#[allow(dead_code)]
#[allow(missing_docs)]
impl ::core::fmt::Debug for MiscProperty {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "ScriptExtensions")
}
}Debug)]
222#[allow(dead_code)]
223#[allow(missing_docs)]
224enum MiscProperty {
225 ScriptExtensions = 0x7000,
226}
227
228impl CodePointSetData {
229 #[cfg(feature = "compiled_data")]
263 pub fn new_for_ecma262(prop: &[u8]) -> Option<crate::CodePointSetDataBorrowed<'static>> {
264 use crate::props::*;
265 Some(match prop {
266 AsciiHexDigit::NAME | AsciiHexDigit::SHORT_NAME => Self::new::<AsciiHexDigit>(),
267 Alphabetic::NAME | Alphabetic::SHORT_NAME => Self::new::<Alphabetic>(),
268 BidiControl::NAME | BidiControl::SHORT_NAME => Self::new::<BidiControl>(),
269 BidiMirrored::NAME | BidiMirrored::SHORT_NAME => Self::new::<BidiMirrored>(),
270 CaseIgnorable::NAME | CaseIgnorable::SHORT_NAME => Self::new::<CaseIgnorable>(),
271 #[allow(unreachable_patterns)] Cased::NAME | Cased::SHORT_NAME => Self::new::<Cased>(),
273 ChangesWhenCasefolded::NAME | ChangesWhenCasefolded::SHORT_NAME => {
274 Self::new::<ChangesWhenCasefolded>()
275 }
276 ChangesWhenCasemapped::NAME | ChangesWhenCasemapped::SHORT_NAME => {
277 Self::new::<ChangesWhenCasemapped>()
278 }
279 ChangesWhenLowercased::NAME | ChangesWhenLowercased::SHORT_NAME => {
280 Self::new::<ChangesWhenLowercased>()
281 }
282 ChangesWhenNfkcCasefolded::NAME | ChangesWhenNfkcCasefolded::SHORT_NAME => {
283 Self::new::<ChangesWhenNfkcCasefolded>()
284 }
285 ChangesWhenTitlecased::NAME | ChangesWhenTitlecased::SHORT_NAME => {
286 Self::new::<ChangesWhenTitlecased>()
287 }
288 ChangesWhenUppercased::NAME | ChangesWhenUppercased::SHORT_NAME => {
289 Self::new::<ChangesWhenUppercased>()
290 }
291 #[allow(unreachable_patterns)] Dash::NAME | Dash::SHORT_NAME => Self::new::<Dash>(),
293 DefaultIgnorableCodePoint::NAME | DefaultIgnorableCodePoint::SHORT_NAME => {
294 Self::new::<DefaultIgnorableCodePoint>()
295 }
296 Deprecated::NAME | Deprecated::SHORT_NAME => Self::new::<Deprecated>(),
297 Diacritic::NAME | Diacritic::SHORT_NAME => Self::new::<Diacritic>(),
298 #[allow(unreachable_patterns)] Emoji::NAME | Emoji::SHORT_NAME => Self::new::<Emoji>(),
300 EmojiComponent::NAME | EmojiComponent::SHORT_NAME => Self::new::<EmojiComponent>(),
301 EmojiModifier::NAME | EmojiModifier::SHORT_NAME => Self::new::<EmojiModifier>(),
302 EmojiModifierBase::NAME | EmojiModifierBase::SHORT_NAME => {
303 Self::new::<EmojiModifierBase>()
304 }
305 EmojiPresentation::NAME | EmojiPresentation::SHORT_NAME => {
306 Self::new::<EmojiPresentation>()
307 }
308 ExtendedPictographic::NAME | ExtendedPictographic::SHORT_NAME => {
309 Self::new::<ExtendedPictographic>()
310 }
311 Extender::NAME | Extender::SHORT_NAME => Self::new::<Extender>(),
312 GraphemeBase::NAME | GraphemeBase::SHORT_NAME => Self::new::<GraphemeBase>(),
313 GraphemeExtend::NAME | GraphemeExtend::SHORT_NAME => Self::new::<GraphemeExtend>(),
314 HexDigit::NAME | HexDigit::SHORT_NAME => Self::new::<HexDigit>(),
315 IdsBinaryOperator::NAME | IdsBinaryOperator::SHORT_NAME => {
316 Self::new::<IdsBinaryOperator>()
317 }
318 IdsTrinaryOperator::NAME | IdsTrinaryOperator::SHORT_NAME => {
319 Self::new::<IdsTrinaryOperator>()
320 }
321 IdContinue::NAME | IdContinue::SHORT_NAME => Self::new::<IdContinue>(),
322 IdStart::NAME | IdStart::SHORT_NAME => Self::new::<IdStart>(),
323 Ideographic::NAME | Ideographic::SHORT_NAME => Self::new::<Ideographic>(),
324 JoinControl::NAME | JoinControl::SHORT_NAME => Self::new::<JoinControl>(),
325 LogicalOrderException::NAME | LogicalOrderException::SHORT_NAME => {
326 Self::new::<LogicalOrderException>()
327 }
328 Lowercase::NAME | Lowercase::SHORT_NAME => Self::new::<Lowercase>(),
329 #[allow(unreachable_patterns)] Math::NAME | Math::SHORT_NAME => Self::new::<Math>(),
331 NoncharacterCodePoint::NAME | NoncharacterCodePoint::SHORT_NAME => {
332 Self::new::<NoncharacterCodePoint>()
333 }
334 PatternSyntax::NAME | PatternSyntax::SHORT_NAME => Self::new::<PatternSyntax>(),
335 PatternWhiteSpace::NAME | PatternWhiteSpace::SHORT_NAME => {
336 Self::new::<PatternWhiteSpace>()
337 }
338 QuotationMark::NAME | QuotationMark::SHORT_NAME => Self::new::<QuotationMark>(),
339 #[allow(unreachable_patterns)] Radical::NAME | Radical::SHORT_NAME => Self::new::<Radical>(),
341 RegionalIndicator::NAME | RegionalIndicator::SHORT_NAME => {
342 Self::new::<RegionalIndicator>()
343 }
344 SentenceTerminal::NAME | SentenceTerminal::SHORT_NAME => {
345 Self::new::<SentenceTerminal>()
346 }
347 SoftDotted::NAME | SoftDotted::SHORT_NAME => Self::new::<SoftDotted>(),
348 TerminalPunctuation::NAME | TerminalPunctuation::SHORT_NAME => {
349 Self::new::<TerminalPunctuation>()
350 }
351 UnifiedIdeograph::NAME | UnifiedIdeograph::SHORT_NAME => {
352 Self::new::<UnifiedIdeograph>()
353 }
354 Uppercase::NAME | Uppercase::SHORT_NAME => Self::new::<Uppercase>(),
355 VariationSelector::NAME | VariationSelector::SHORT_NAME => {
356 Self::new::<VariationSelector>()
357 }
358 WhiteSpace::NAME | WhiteSpace::SHORT_NAME => Self::new::<WhiteSpace>(),
359 XidContinue::NAME | XidContinue::SHORT_NAME => Self::new::<XidContinue>(),
360 XidStart::NAME | XidStart::SHORT_NAME => Self::new::<XidStart>(),
361 _ => return None,
363 })
364 }
365
366 icu_provider::gen_buffer_data_constructors!(
367 (prop: &[u8]) -> result: Option<Result<Self, DataError>>,
368 functions: [
369 new_for_ecma262: skip,
370 try_new_for_ecma262_with_buffer_provider,
371 try_new_for_ecma262_unstable,
372 Self,
373 ]
374 );
375
376 #[doc = "A version of [`Self::new_for_ecma262`] that uses custom data provided by a [`DataProvider`].\n\n[\u{1f4da} Help choosing a constructor](icu_provider::constructors)\n\n<div class=\"stab unstable\">\u{26a0}\u{fe0f} The bounds on <tt>provider</tt> may change over time, including in SemVer minor releases.</div>"icu_provider::gen_buffer_unstable_docs!(UNSTABLE, Self::new_for_ecma262)]
377 pub fn try_new_for_ecma262_unstable<P>(
378 provider: &P,
379 prop: &[u8],
380 ) -> Option<Result<Self, DataError>>
381 where
382 P: ?Sized
383 + DataProvider<PropertyBinaryAsciiHexDigitV1>
384 + DataProvider<PropertyBinaryAlphabeticV1>
385 + DataProvider<PropertyBinaryBidiControlV1>
386 + DataProvider<PropertyBinaryBidiMirroredV1>
387 + DataProvider<PropertyBinaryCaseIgnorableV1>
388 + DataProvider<PropertyBinaryCasedV1>
389 + DataProvider<PropertyBinaryChangesWhenCasefoldedV1>
390 + DataProvider<PropertyBinaryChangesWhenCasemappedV1>
391 + DataProvider<PropertyBinaryChangesWhenLowercasedV1>
392 + DataProvider<PropertyBinaryChangesWhenNfkcCasefoldedV1>
393 + DataProvider<PropertyBinaryChangesWhenTitlecasedV1>
394 + DataProvider<PropertyBinaryChangesWhenUppercasedV1>
395 + DataProvider<PropertyBinaryDashV1>
396 + DataProvider<PropertyBinaryDefaultIgnorableCodePointV1>
397 + DataProvider<PropertyBinaryDeprecatedV1>
398 + DataProvider<PropertyBinaryDiacriticV1>
399 + DataProvider<PropertyBinaryEmojiV1>
400 + DataProvider<PropertyBinaryEmojiComponentV1>
401 + DataProvider<PropertyBinaryEmojiModifierV1>
402 + DataProvider<PropertyBinaryEmojiModifierBaseV1>
403 + DataProvider<PropertyBinaryEmojiPresentationV1>
404 + DataProvider<PropertyBinaryExtendedPictographicV1>
405 + DataProvider<PropertyBinaryExtenderV1>
406 + DataProvider<PropertyBinaryGraphemeBaseV1>
407 + DataProvider<PropertyBinaryGraphemeExtendV1>
408 + DataProvider<PropertyBinaryHexDigitV1>
409 + DataProvider<PropertyBinaryIdsBinaryOperatorV1>
410 + DataProvider<PropertyBinaryIdsTrinaryOperatorV1>
411 + DataProvider<PropertyBinaryIdContinueV1>
412 + DataProvider<PropertyBinaryIdStartV1>
413 + DataProvider<PropertyBinaryIdeographicV1>
414 + DataProvider<PropertyBinaryJoinControlV1>
415 + DataProvider<PropertyBinaryLogicalOrderExceptionV1>
416 + DataProvider<PropertyBinaryLowercaseV1>
417 + DataProvider<PropertyBinaryMathV1>
418 + DataProvider<PropertyBinaryNoncharacterCodePointV1>
419 + DataProvider<PropertyBinaryPatternSyntaxV1>
420 + DataProvider<PropertyBinaryPatternWhiteSpaceV1>
421 + DataProvider<PropertyBinaryQuotationMarkV1>
422 + DataProvider<PropertyBinaryRadicalV1>
423 + DataProvider<PropertyBinaryRegionalIndicatorV1>
424 + DataProvider<PropertyBinarySentenceTerminalV1>
425 + DataProvider<PropertyBinarySoftDottedV1>
426 + DataProvider<PropertyBinaryTerminalPunctuationV1>
427 + DataProvider<PropertyBinaryUnifiedIdeographV1>
428 + DataProvider<PropertyBinaryUppercaseV1>
429 + DataProvider<PropertyBinaryVariationSelectorV1>
430 + DataProvider<PropertyBinaryWhiteSpaceV1>
431 + DataProvider<PropertyBinaryXidContinueV1>
432 + DataProvider<PropertyBinaryXidStartV1>,
433 {
434 use crate::props::*;
435 Some(match prop {
436 AsciiHexDigit::NAME | AsciiHexDigit::SHORT_NAME => {
437 Self::try_new_unstable::<AsciiHexDigit>(provider)
438 }
439 Alphabetic::NAME | Alphabetic::SHORT_NAME => {
440 Self::try_new_unstable::<Alphabetic>(provider)
441 }
442 BidiControl::NAME | BidiControl::SHORT_NAME => {
443 Self::try_new_unstable::<BidiControl>(provider)
444 }
445 BidiMirrored::NAME | BidiMirrored::SHORT_NAME => {
446 Self::try_new_unstable::<BidiMirrored>(provider)
447 }
448 CaseIgnorable::NAME | CaseIgnorable::SHORT_NAME => {
449 Self::try_new_unstable::<CaseIgnorable>(provider)
450 }
451 #[allow(unreachable_patterns)] Cased::NAME | Cased::SHORT_NAME => Self::try_new_unstable::<Cased>(provider),
453 ChangesWhenCasefolded::NAME | ChangesWhenCasefolded::SHORT_NAME => {
454 Self::try_new_unstable::<ChangesWhenCasefolded>(provider)
455 }
456 ChangesWhenCasemapped::NAME | ChangesWhenCasemapped::SHORT_NAME => {
457 Self::try_new_unstable::<ChangesWhenCasemapped>(provider)
458 }
459 ChangesWhenLowercased::NAME | ChangesWhenLowercased::SHORT_NAME => {
460 Self::try_new_unstable::<ChangesWhenLowercased>(provider)
461 }
462 ChangesWhenNfkcCasefolded::NAME | ChangesWhenNfkcCasefolded::SHORT_NAME => {
463 Self::try_new_unstable::<ChangesWhenNfkcCasefolded>(provider)
464 }
465 ChangesWhenTitlecased::NAME | ChangesWhenTitlecased::SHORT_NAME => {
466 Self::try_new_unstable::<ChangesWhenTitlecased>(provider)
467 }
468 ChangesWhenUppercased::NAME | ChangesWhenUppercased::SHORT_NAME => {
469 Self::try_new_unstable::<ChangesWhenUppercased>(provider)
470 }
471 #[allow(unreachable_patterns)] Dash::NAME | Dash::SHORT_NAME => Self::try_new_unstable::<Dash>(provider),
473 DefaultIgnorableCodePoint::NAME | DefaultIgnorableCodePoint::SHORT_NAME => {
474 Self::try_new_unstable::<DefaultIgnorableCodePoint>(provider)
475 }
476 Deprecated::NAME | Deprecated::SHORT_NAME => {
477 Self::try_new_unstable::<Deprecated>(provider)
478 }
479 Diacritic::NAME | Diacritic::SHORT_NAME => {
480 Self::try_new_unstable::<Diacritic>(provider)
481 }
482 #[allow(unreachable_patterns)] Emoji::NAME | Emoji::SHORT_NAME => Self::try_new_unstable::<Emoji>(provider),
484 EmojiComponent::NAME | EmojiComponent::SHORT_NAME => {
485 Self::try_new_unstable::<EmojiComponent>(provider)
486 }
487 EmojiModifier::NAME | EmojiModifier::SHORT_NAME => {
488 Self::try_new_unstable::<EmojiModifier>(provider)
489 }
490 EmojiModifierBase::NAME | EmojiModifierBase::SHORT_NAME => {
491 Self::try_new_unstable::<EmojiModifierBase>(provider)
492 }
493 EmojiPresentation::NAME | EmojiPresentation::SHORT_NAME => {
494 Self::try_new_unstable::<EmojiPresentation>(provider)
495 }
496 ExtendedPictographic::NAME | ExtendedPictographic::SHORT_NAME => {
497 Self::try_new_unstable::<ExtendedPictographic>(provider)
498 }
499 Extender::NAME | Extender::SHORT_NAME => Self::try_new_unstable::<Extender>(provider),
500 GraphemeBase::NAME | GraphemeBase::SHORT_NAME => {
501 Self::try_new_unstable::<GraphemeBase>(provider)
502 }
503 GraphemeExtend::NAME | GraphemeExtend::SHORT_NAME => {
504 Self::try_new_unstable::<GraphemeExtend>(provider)
505 }
506 HexDigit::NAME | HexDigit::SHORT_NAME => Self::try_new_unstable::<HexDigit>(provider),
507 IdsBinaryOperator::NAME | IdsBinaryOperator::SHORT_NAME => {
508 Self::try_new_unstable::<IdsBinaryOperator>(provider)
509 }
510 IdsTrinaryOperator::NAME | IdsTrinaryOperator::SHORT_NAME => {
511 Self::try_new_unstable::<IdsTrinaryOperator>(provider)
512 }
513 IdContinue::NAME | IdContinue::SHORT_NAME => {
514 Self::try_new_unstable::<IdContinue>(provider)
515 }
516 IdStart::NAME | IdStart::SHORT_NAME => Self::try_new_unstable::<IdStart>(provider),
517 Ideographic::NAME | Ideographic::SHORT_NAME => {
518 Self::try_new_unstable::<Ideographic>(provider)
519 }
520 JoinControl::NAME | JoinControl::SHORT_NAME => {
521 Self::try_new_unstable::<JoinControl>(provider)
522 }
523 LogicalOrderException::NAME | LogicalOrderException::SHORT_NAME => {
524 Self::try_new_unstable::<LogicalOrderException>(provider)
525 }
526 Lowercase::NAME | Lowercase::SHORT_NAME => {
527 Self::try_new_unstable::<Lowercase>(provider)
528 }
529 #[allow(unreachable_patterns)] Math::NAME | Math::SHORT_NAME => Self::try_new_unstable::<Math>(provider),
531 NoncharacterCodePoint::NAME | NoncharacterCodePoint::SHORT_NAME => {
532 Self::try_new_unstable::<NoncharacterCodePoint>(provider)
533 }
534 PatternSyntax::NAME | PatternSyntax::SHORT_NAME => {
535 Self::try_new_unstable::<PatternSyntax>(provider)
536 }
537 PatternWhiteSpace::NAME | PatternWhiteSpace::SHORT_NAME => {
538 Self::try_new_unstable::<PatternWhiteSpace>(provider)
539 }
540 QuotationMark::NAME | QuotationMark::SHORT_NAME => {
541 Self::try_new_unstable::<QuotationMark>(provider)
542 }
543 #[allow(unreachable_patterns)] Radical::NAME | Radical::SHORT_NAME => Self::try_new_unstable::<Radical>(provider),
545 RegionalIndicator::NAME | RegionalIndicator::SHORT_NAME => {
546 Self::try_new_unstable::<RegionalIndicator>(provider)
547 }
548 SentenceTerminal::NAME | SentenceTerminal::SHORT_NAME => {
549 Self::try_new_unstable::<SentenceTerminal>(provider)
550 }
551 SoftDotted::NAME | SoftDotted::SHORT_NAME => {
552 Self::try_new_unstable::<SoftDotted>(provider)
553 }
554 TerminalPunctuation::NAME | TerminalPunctuation::SHORT_NAME => {
555 Self::try_new_unstable::<TerminalPunctuation>(provider)
556 }
557 UnifiedIdeograph::NAME | UnifiedIdeograph::SHORT_NAME => {
558 Self::try_new_unstable::<UnifiedIdeograph>(provider)
559 }
560 Uppercase::NAME | Uppercase::SHORT_NAME => {
561 Self::try_new_unstable::<Uppercase>(provider)
562 }
563 VariationSelector::NAME | VariationSelector::SHORT_NAME => {
564 Self::try_new_unstable::<VariationSelector>(provider)
565 }
566 WhiteSpace::NAME | WhiteSpace::SHORT_NAME => {
567 Self::try_new_unstable::<WhiteSpace>(provider)
568 }
569 XidContinue::NAME | XidContinue::SHORT_NAME => {
570 Self::try_new_unstable::<XidContinue>(provider)
571 }
572 XidStart::NAME | XidStart::SHORT_NAME => Self::try_new_unstable::<XidStart>(provider),
573 _ => return None,
575 })
576 }
577}