1pub use crate::names::{NamedEnumeratedProperty, ParseableEnumeratedProperty};
21
22pub use crate::bidi::{BidiMirroringGlyph, BidiPairedBracketType};
23pub use crate::code_point_map::EnumeratedProperty;
24
25macro_rules! make_enumerated_property {
26 (
27 name: $name:literal;
28 short_name: $short_name:literal;
29 ident: $value_ty:path;
30 data_marker: $data_marker:ty;
31 singleton: $singleton:ident;
32 $(ule_ty: $ule_ty:ty;)?
33 ) => {
34 impl crate::private::Sealed for $value_ty {}
35
36 impl EnumeratedProperty for $value_ty {
37 type DataMarker = $data_marker;
38 #[cfg(feature = "compiled_data")]
39 const SINGLETON: &'static crate::provider::PropertyCodePointMap<'static, Self> =
40 crate::provider::Baked::$singleton;
41 const NAME: &'static [u8] = $name.as_bytes();
42 const SHORT_NAME: &'static [u8] = $short_name.as_bytes();
43 }
44
45 $(
46 impl zerovec::ule::AsULE for $value_ty {
47 type ULE = $ule_ty;
48
49 fn to_unaligned(self) -> Self::ULE {
50 self.0.to_unaligned()
51 }
52 fn from_unaligned(unaligned: Self::ULE) -> Self {
53 Self(zerovec::ule::AsULE::from_unaligned(unaligned))
54 }
55 }
56 )?
57 };
58}
59
60#[derive(#[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::marker::Copy for BidiClass { }Copy, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::clone::Clone for BidiClass {
#[inline]
fn clone(&self) -> BidiClass {
let _: ::core::clone::AssertParamIsClone<u8>;
*self
}
}Clone, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::fmt::Debug for BidiClass {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::debug_tuple_field1_finish(f, "BidiClass",
&&self.0)
}
}Debug, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::cmp::Eq for BidiClass {
#[inline]
#[doc(hidden)]
#[coverage(off)]
fn assert_fields_are_eq(&self) {
let _: ::core::cmp::AssertParamIsEq<u8>;
}
}Eq, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::cmp::PartialEq for BidiClass {
#[inline]
fn eq(&self, other: &BidiClass) -> bool { self.0 == other.0 }
}PartialEq, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::cmp::Ord for BidiClass {
#[inline]
fn cmp(&self, other: &BidiClass) -> ::core::cmp::Ordering {
::core::cmp::Ord::cmp(&self.0, &other.0)
}
}Ord, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::cmp::PartialOrd for BidiClass {
#[inline]
fn partial_cmp(&self, other: &BidiClass)
-> ::core::option::Option<::core::cmp::Ordering> {
::core::option::Option::Some(::core::cmp::Ord::cmp(self, other))
}
}PartialOrd, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::hash::Hash for BidiClass {
#[inline]
fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) {
::core::hash::Hash::hash(&self.0, state)
}
}Hash)]
81#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
82#[allow(clippy::exhaustive_structs)] #[repr(transparent)]
84pub struct BidiClass(pub(crate) u8);
85
86impl BidiClass {
87 #[deprecated(
89 since = "2.3.0",
90 note = "please comment on https://github.com/unicode-org/icu4x/issues/6067 if you need this"
91 )]
92 pub const fn to_icu4c_value(self) -> u8 {
93 self.0
94 }
95 #[deprecated(
97 since = "2.3.0",
98 note = "please comment on https://github.com/unicode-org/icu4x/issues/6067 if you need this"
99 )]
100 pub const fn from_icu4c_value(value: u8) -> Self {
101 Self(value)
102 }
103}
104
105impl Default for BidiClass {
106 fn default() -> Self {
107 Self::LeftToRight
108 }
109}
110
111impl crate::private::Sealed for BidiClass {}
impl EnumeratedProperty for BidiClass {
type DataMarker = crate::provider::PropertyEnumBidiClassV1;
const SINGLETON:
&'static crate::provider::PropertyCodePointMap<'static, Self> =
crate::provider::Baked::SINGLETON_PROPERTY_ENUM_BIDI_CLASS_V1;
const NAME: &'static [u8] = "Bidi_Class".as_bytes();
const SHORT_NAME: &'static [u8] = "bc".as_bytes();
}
impl zerovec::ule::AsULE for BidiClass {
type ULE = u8;
fn to_unaligned(self) -> Self::ULE { self.0.to_unaligned() }
fn from_unaligned(unaligned: Self::ULE) -> Self {
Self(zerovec::ule::AsULE::from_unaligned(unaligned))
}
}make_enumerated_property! {
112 name: "Bidi_Class";
113 short_name: "bc";
114 ident: BidiClass;
115 data_marker: crate::provider::PropertyEnumBidiClassV1;
116 singleton: SINGLETON_PROPERTY_ENUM_BIDI_CLASS_V1;
117 ule_ty: u8;
118}
119
120#[derive(#[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::marker::Copy for NumericType { }Copy, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::clone::Clone for NumericType {
#[inline]
fn clone(&self) -> NumericType {
let _: ::core::clone::AssertParamIsClone<u8>;
*self
}
}Clone, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::fmt::Debug for NumericType {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::debug_tuple_field1_finish(f, "NumericType",
&&self.0)
}
}Debug, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::cmp::Eq for NumericType {
#[inline]
#[doc(hidden)]
#[coverage(off)]
fn assert_fields_are_eq(&self) {
let _: ::core::cmp::AssertParamIsEq<u8>;
}
}Eq, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::cmp::PartialEq for NumericType {
#[inline]
fn eq(&self, other: &NumericType) -> bool { self.0 == other.0 }
}PartialEq, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::cmp::Ord for NumericType {
#[inline]
fn cmp(&self, other: &NumericType) -> ::core::cmp::Ordering {
::core::cmp::Ord::cmp(&self.0, &other.0)
}
}Ord, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::cmp::PartialOrd for NumericType {
#[inline]
fn partial_cmp(&self, other: &NumericType)
-> ::core::option::Option<::core::cmp::Ordering> {
::core::option::Option::Some(::core::cmp::Ord::cmp(self, other))
}
}PartialOrd, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::hash::Hash for NumericType {
#[inline]
fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) {
::core::hash::Hash::hash(&self.0, state)
}
}Hash)]
140#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
141#[allow(clippy::exhaustive_structs)] #[repr(transparent)]
143pub struct NumericType(pub(crate) u8);
144
145impl NumericType {
146 #[deprecated(
148 since = "2.3.0",
149 note = "please comment on https://github.com/unicode-org/icu4x/issues/6067 if you need this"
150 )]
151 pub const fn to_icu4c_value(self) -> u8 {
152 self.0
153 }
154 #[deprecated(
156 since = "2.3.0",
157 note = "please comment on https://github.com/unicode-org/icu4x/issues/6067 if you need this"
158 )]
159 pub const fn from_icu4c_value(value: u8) -> Self {
160 Self(value)
161 }
162}
163
164impl Default for NumericType {
165 fn default() -> Self {
166 Self::None
167 }
168}
169
170impl crate::private::Sealed for NumericType {}
impl EnumeratedProperty for NumericType {
type DataMarker = crate::provider::PropertyEnumNumericTypeV1;
const SINGLETON:
&'static crate::provider::PropertyCodePointMap<'static, Self> =
crate::provider::Baked::SINGLETON_PROPERTY_ENUM_NUMERIC_TYPE_V1;
const NAME: &'static [u8] = "Numeric_Type".as_bytes();
const SHORT_NAME: &'static [u8] = "nt".as_bytes();
}
impl zerovec::ule::AsULE for NumericType {
type ULE = u8;
fn to_unaligned(self) -> Self::ULE { self.0.to_unaligned() }
fn from_unaligned(unaligned: Self::ULE) -> Self {
Self(zerovec::ule::AsULE::from_unaligned(unaligned))
}
}make_enumerated_property! {
171 name: "Numeric_Type";
172 short_name: "nt";
173 ident: NumericType;
174 data_marker: crate::provider::PropertyEnumNumericTypeV1;
175 singleton: SINGLETON_PROPERTY_ENUM_NUMERIC_TYPE_V1;
176 ule_ty: u8;
177}
178
179pub use crate::enum_values::GeneralCategory;
203
204#[allow(clippy::derivable_impls)] impl Default for GeneralCategory {
206 fn default() -> Self {
207 Self::Unassigned
208 }
209}
210
211#[derive(#[automatically_derived]
impl ::core::marker::Copy for GeneralCategoryOutOfBoundsError { }Copy, #[automatically_derived]
impl ::core::clone::Clone for GeneralCategoryOutOfBoundsError {
#[inline]
fn clone(&self) -> GeneralCategoryOutOfBoundsError { *self }
}Clone, #[automatically_derived]
impl ::core::cmp::PartialEq for GeneralCategoryOutOfBoundsError {
#[inline]
fn eq(&self, other: &GeneralCategoryOutOfBoundsError) -> bool { true }
}PartialEq, #[automatically_derived]
impl ::core::cmp::Eq for GeneralCategoryOutOfBoundsError {
#[inline]
#[doc(hidden)]
#[coverage(off)]
fn assert_fields_are_eq(&self) {}
}Eq, #[automatically_derived]
impl ::core::cmp::PartialOrd for GeneralCategoryOutOfBoundsError {
#[inline]
fn partial_cmp(&self, other: &GeneralCategoryOutOfBoundsError)
-> ::core::option::Option<::core::cmp::Ordering> {
::core::option::Option::Some(::core::cmp::Ordering::Equal)
}
}PartialOrd, #[automatically_derived]
impl ::core::cmp::Ord for GeneralCategoryOutOfBoundsError {
#[inline]
fn cmp(&self, other: &GeneralCategoryOutOfBoundsError)
-> ::core::cmp::Ordering {
::core::cmp::Ordering::Equal
}
}Ord, #[automatically_derived]
impl ::core::fmt::Debug for GeneralCategoryOutOfBoundsError {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f,
"GeneralCategoryOutOfBoundsError")
}
}Debug, #[automatically_derived]
impl ::core::hash::Hash for GeneralCategoryOutOfBoundsError {
#[inline]
fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) {}
}Hash, #[automatically_derived]
impl ::core::default::Default for GeneralCategoryOutOfBoundsError {
#[inline]
fn default() -> GeneralCategoryOutOfBoundsError {
GeneralCategoryOutOfBoundsError {}
}
}Default)]
212#[non_exhaustive]
214pub struct GeneralCategoryOutOfBoundsError;
215
216impl TryFrom<u8> for GeneralCategory {
217 type Error = GeneralCategoryOutOfBoundsError;
218 fn try_from(val: u8) -> Result<Self, GeneralCategoryOutOfBoundsError> {
221 GeneralCategory::new_from_u8(val).ok_or(GeneralCategoryOutOfBoundsError)
222 }
223}
224
225impl crate::private::Sealed for GeneralCategory {}
impl EnumeratedProperty for GeneralCategory {
type DataMarker = crate::provider::PropertyEnumGeneralCategoryV1;
const SINGLETON:
&'static crate::provider::PropertyCodePointMap<'static, Self> =
crate::provider::Baked::SINGLETON_PROPERTY_ENUM_GENERAL_CATEGORY_V1;
const NAME: &'static [u8] = "General_Category".as_bytes();
const SHORT_NAME: &'static [u8] = "gc".as_bytes();
}make_enumerated_property! {
226 name: "General_Category";
227 short_name: "gc";
228 ident: GeneralCategory;
229 data_marker: crate::provider::PropertyEnumGeneralCategoryV1;
230 singleton: SINGLETON_PROPERTY_ENUM_GENERAL_CATEGORY_V1;
231}
232
233#[derive(#[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::marker::Copy for GeneralCategoryGroup { }Copy, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::clone::Clone for GeneralCategoryGroup {
#[inline]
fn clone(&self) -> GeneralCategoryGroup {
let _: ::core::clone::AssertParamIsClone<u32>;
*self
}
}Clone, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::cmp::PartialEq for GeneralCategoryGroup {
#[inline]
fn eq(&self, other: &GeneralCategoryGroup) -> bool { self.0 == other.0 }
}PartialEq, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::fmt::Debug for GeneralCategoryGroup {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::debug_tuple_field1_finish(f,
"GeneralCategoryGroup", &&self.0)
}
}Debug, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::cmp::Eq for GeneralCategoryGroup {
#[inline]
#[doc(hidden)]
#[coverage(off)]
fn assert_fields_are_eq(&self) {
let _: ::core::cmp::AssertParamIsEq<u32>;
}
}Eq)]
249#[allow(clippy::exhaustive_structs)] #[repr(transparent)]
251pub struct GeneralCategoryGroup(pub(crate) u32);
252
253impl crate::private::Sealed for GeneralCategoryGroup {}
254
255use GeneralCategory as GC;
256use GeneralCategoryGroup as GCG;
257
258#[allow(non_upper_case_globals, missing_docs)]
259impl GeneralCategoryGroup {
260 pub const UppercaseLetter: GeneralCategoryGroup = GCG(1 << (GC::UppercaseLetter as u32));
262 pub const Lu: GeneralCategoryGroup = Self::UppercaseLetter;
263 pub const Ll: Self = Self::LowercaseLetter;
265 pub const LowercaseLetter: GeneralCategoryGroup = GCG(1 << (GC::LowercaseLetter as u32));
266 pub const TitlecaseLetter: GeneralCategoryGroup = GCG(1 << (GC::TitlecaseLetter as u32));
268 pub const Lt: Self = Self::TitlecaseLetter;
269 pub const ModifierLetter: GeneralCategoryGroup = GCG(1 << (GC::ModifierLetter as u32));
271 pub const Lm: Self = Self::ModifierLetter;
272 pub const OtherLetter: GeneralCategoryGroup = GCG(1 << (GC::OtherLetter as u32));
274 pub const Lo: Self = Self::OtherLetter;
275 pub const CasedLetter: GeneralCategoryGroup = GCG((1 << (GC::UppercaseLetter as u32))
277 | (1 << (GC::LowercaseLetter as u32))
278 | (1 << (GC::TitlecaseLetter as u32)));
279 pub const LC: Self = Self::CasedLetter;
280 pub const Letter: GeneralCategoryGroup = GCG((1 << (GC::UppercaseLetter as u32))
282 | (1 << (GC::LowercaseLetter as u32))
283 | (1 << (GC::TitlecaseLetter as u32))
284 | (1 << (GC::ModifierLetter as u32))
285 | (1 << (GC::OtherLetter as u32)));
286 pub const L: Self = Self::Letter;
287
288 pub const NonspacingMark: GeneralCategoryGroup = GCG(1 << (GC::NonspacingMark as u32));
290 pub const Mn: Self = Self::NonspacingMark;
291 pub const EnclosingMark: GeneralCategoryGroup = GCG(1 << (GC::EnclosingMark as u32));
293 pub const Me: Self = Self::EnclosingMark;
294 pub const SpacingMark: GeneralCategoryGroup = GCG(1 << (GC::SpacingMark as u32));
296 pub const Mc: Self = Self::SpacingMark;
297 pub const Mark: GeneralCategoryGroup = GCG((1 << (GC::NonspacingMark as u32))
299 | (1 << (GC::EnclosingMark as u32))
300 | (1 << (GC::SpacingMark as u32)));
301 pub const M: Self = Self::Mark;
302
303 pub const DecimalNumber: GeneralCategoryGroup = GCG(1 << (GC::DecimalNumber as u32));
305 pub const Nd: Self = Self::DecimalNumber;
306 pub const LetterNumber: GeneralCategoryGroup = GCG(1 << (GC::LetterNumber as u32));
308 pub const Nl: Self = Self::LetterNumber;
309 pub const OtherNumber: GeneralCategoryGroup = GCG(1 << (GC::OtherNumber as u32));
311 pub const No: Self = Self::OtherNumber;
312 pub const Number: GeneralCategoryGroup = GCG((1 << (GC::DecimalNumber as u32))
314 | (1 << (GC::LetterNumber as u32))
315 | (1 << (GC::OtherNumber as u32)));
316 pub const N: Self = Self::Number;
317
318 pub const SpaceSeparator: GeneralCategoryGroup = GCG(1 << (GC::SpaceSeparator as u32));
320 pub const Zs: Self = Self::SpaceSeparator;
321 pub const LineSeparator: GeneralCategoryGroup = GCG(1 << (GC::LineSeparator as u32));
323 pub const Zl: Self = Self::LineSeparator;
324 pub const ParagraphSeparator: GeneralCategoryGroup = GCG(1 << (GC::ParagraphSeparator as u32));
326 pub const Zp: Self = Self::ParagraphSeparator;
327 pub const Separator: GeneralCategoryGroup = GCG((1 << (GC::SpaceSeparator as u32))
329 | (1 << (GC::LineSeparator as u32))
330 | (1 << (GC::ParagraphSeparator as u32)));
331 pub const Z: Self = Self::Separator;
332
333 pub const Control: GeneralCategoryGroup = GCG(1 << (GC::Control as u32));
335 pub const Cc: Self = Self::Control;
336 pub const Format: GeneralCategoryGroup = GCG(1 << (GC::Format as u32));
338 pub const Cf: Self = Self::Format;
339 pub const PrivateUse: GeneralCategoryGroup = GCG(1 << (GC::PrivateUse as u32));
341 pub const Co: Self = Self::PrivateUse;
342 pub const Surrogate: GeneralCategoryGroup = GCG(1 << (GC::Surrogate as u32));
344 pub const Cs: Self = Self::Surrogate;
345 pub const Unassigned: GeneralCategoryGroup = GCG(1 << (GC::Unassigned as u32));
347 pub const Cn: Self = Self::Unassigned;
348 pub const Other: GeneralCategoryGroup = GCG((1 << (GC::Control as u32))
350 | (1 << (GC::Format as u32))
351 | (1 << (GC::PrivateUse as u32))
352 | (1 << (GC::Surrogate as u32))
353 | (1 << (GC::Unassigned as u32)));
354 pub const C: Self = Self::Other;
355
356 pub const DashPunctuation: GeneralCategoryGroup = GCG(1 << (GC::DashPunctuation as u32));
358 pub const Pd: Self = Self::DashPunctuation;
359 pub const OpenPunctuation: GeneralCategoryGroup = GCG(1 << (GC::OpenPunctuation as u32));
361 pub const Ps: Self = Self::OpenPunctuation;
362 pub const ClosePunctuation: GeneralCategoryGroup = GCG(1 << (GC::ClosePunctuation as u32));
364 pub const Pe: Self = Self::ClosePunctuation;
365 pub const ConnectorPunctuation: GeneralCategoryGroup =
367 GCG(1 << (GC::ConnectorPunctuation as u32));
368 pub const Pc: Self = Self::ConnectorPunctuation;
369 pub const InitialPunctuation: GeneralCategoryGroup = GCG(1 << (GC::InitialPunctuation as u32));
371 pub const Pi: Self = Self::InitialPunctuation;
372 pub const FinalPunctuation: GeneralCategoryGroup = GCG(1 << (GC::FinalPunctuation as u32));
374 pub const Pf: Self = Self::FinalPunctuation;
375 pub const OtherPunctuation: GeneralCategoryGroup = GCG(1 << (GC::OtherPunctuation as u32));
377 pub const Po: Self = Self::OtherPunctuation;
378 pub const Punctuation: GeneralCategoryGroup = GCG((1 << (GC::DashPunctuation as u32))
380 | (1 << (GC::OpenPunctuation as u32))
381 | (1 << (GC::ClosePunctuation as u32))
382 | (1 << (GC::ConnectorPunctuation as u32))
383 | (1 << (GC::OtherPunctuation as u32))
384 | (1 << (GC::InitialPunctuation as u32))
385 | (1 << (GC::FinalPunctuation as u32)));
386 pub const P: Self = Self::Punctuation;
387
388 pub const MathSymbol: GeneralCategoryGroup = GCG(1 << (GC::MathSymbol as u32));
390 pub const Sm: Self = Self::MathSymbol;
391 pub const CurrencySymbol: GeneralCategoryGroup = GCG(1 << (GC::CurrencySymbol as u32));
393 pub const Sc: Self = Self::CurrencySymbol;
394 pub const ModifierSymbol: GeneralCategoryGroup = GCG(1 << (GC::ModifierSymbol as u32));
396 pub const Sk: Self = Self::ModifierSymbol;
397 pub const OtherSymbol: GeneralCategoryGroup = GCG(1 << (GC::OtherSymbol as u32));
399 pub const So: Self = Self::OtherSymbol;
400 pub const Symbol: GeneralCategoryGroup = GCG((1 << (GC::MathSymbol as u32))
402 | (1 << (GC::CurrencySymbol as u32))
403 | (1 << (GC::ModifierSymbol as u32))
404 | (1 << (GC::OtherSymbol as u32)));
405 pub const S: Self = Self::Symbol;
406
407 const ALL: u32 = (1 << (GC::FinalPunctuation as u32 + 1)) - 1;
408
409 #[cfg(feature = "datagen")]
410 #[doc(hidden)]
411 pub fn names() -> impl Iterator<Item = (&'static str, Self)> {
412 [
413 ("Lu", Self::UppercaseLetter),
414 ("Ll", Self::LowercaseLetter),
415 ("Lt", Self::TitlecaseLetter),
416 ("Lm", Self::ModifierLetter),
417 ("Lo", Self::OtherLetter),
418 ("LC", Self::CasedLetter),
419 ("L", Self::Letter),
420 ("Mn", Self::NonspacingMark),
421 ("Me", Self::EnclosingMark),
422 ("Mc", Self::SpacingMark),
423 ("M", Self::Mark),
424 ("Nd", Self::DecimalNumber),
425 ("Nl", Self::LetterNumber),
426 ("No", Self::OtherNumber),
427 ("N", Self::Number),
428 ("Zs", Self::SpaceSeparator),
429 ("Zl", Self::LineSeparator),
430 ("Zp", Self::ParagraphSeparator),
431 ("Z", Self::Separator),
432 ("Cc", Self::Control),
433 ("Cf", Self::Format),
434 ("Co", Self::PrivateUse),
435 ("Cs", Self::Surrogate),
436 ("Cn", Self::Unassigned),
437 ("C", Self::Other),
438 ("Pd", Self::DashPunctuation),
439 ("Ps", Self::OpenPunctuation),
440 ("Pe", Self::ClosePunctuation),
441 ("Pc", Self::ConnectorPunctuation),
442 ("Pi", Self::InitialPunctuation),
443 ("Pf", Self::FinalPunctuation),
444 ("Po", Self::OtherPunctuation),
445 ("P", Self::Punctuation),
446 ("Sm", Self::MathSymbol),
447 ("Sc", Self::CurrencySymbol),
448 ("Sk", Self::ModifierSymbol),
449 ("So", Self::OtherSymbol),
450 ("S", Self::Symbol),
451 ]
452 .into_iter()
453 }
454
455 pub const fn contains(self, val: GeneralCategory) -> bool {
499 0 != (1 << (val as u32)) & self.0
500 }
501
502 pub const fn complement(self) -> Self {
520 GeneralCategoryGroup(!self.0 & Self::ALL)
523 }
524
525 pub const fn all() -> Self {
539 Self(Self::ALL)
540 }
541
542 pub const fn empty() -> Self {
556 Self(0)
557 }
558
559 pub const fn union(self, other: Self) -> Self {
575 Self(self.0 | other.0)
576 }
577
578 pub const fn intersection(self, other: Self) -> Self {
595 Self(self.0 & other.0)
596 }
597}
598
599impl From<GeneralCategory> for GeneralCategoryGroup {
600 fn from(subcategory: GeneralCategory) -> Self {
601 GeneralCategoryGroup(1 << (subcategory as u32))
602 }
603}
604impl From<u32> for GeneralCategoryGroup {
605 fn from(mask: u32) -> Self {
606 GeneralCategoryGroup(mask & Self::ALL)
609 }
610}
611impl From<GeneralCategoryGroup> for u32 {
612 fn from(group: GeneralCategoryGroup) -> Self {
613 group.0
614 }
615}
616
617#[derive(#[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::marker::Copy for Script { }Copy, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::clone::Clone for Script {
#[inline]
fn clone(&self) -> Script {
let _: ::core::clone::AssertParamIsClone<u16>;
*self
}
}Clone, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::fmt::Debug for Script {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::debug_tuple_field1_finish(f, "Script",
&&self.0)
}
}Debug, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::cmp::Eq for Script {
#[inline]
#[doc(hidden)]
#[coverage(off)]
fn assert_fields_are_eq(&self) {
let _: ::core::cmp::AssertParamIsEq<u16>;
}
}Eq, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::cmp::PartialEq for Script {
#[inline]
fn eq(&self, other: &Script) -> bool { self.0 == other.0 }
}PartialEq, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::cmp::Ord for Script {
#[inline]
fn cmp(&self, other: &Script) -> ::core::cmp::Ordering {
::core::cmp::Ord::cmp(&self.0, &other.0)
}
}Ord, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::cmp::PartialOrd for Script {
#[inline]
fn partial_cmp(&self, other: &Script)
-> ::core::option::Option<::core::cmp::Ordering> {
::core::option::Option::Some(::core::cmp::Ord::cmp(self, other))
}
}PartialOrd, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::hash::Hash for Script {
#[inline]
fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) {
::core::hash::Hash::hash(&self.0, state)
}
}Hash)]
646#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
647#[allow(clippy::exhaustive_structs)] #[repr(transparent)]
649pub struct Script(pub(crate) u16);
650
651impl Script {
652 #[deprecated(
654 since = "2.3.0",
655 note = "please comment on https://github.com/unicode-org/icu4x/issues/6067 if you need this"
656 )]
657 pub const fn to_icu4c_value(self) -> u16 {
658 self.0
659 }
660 #[deprecated(
662 since = "2.3.0",
663 note = "please comment on https://github.com/unicode-org/icu4x/issues/6067 if you need this"
664 )]
665 pub const fn from_icu4c_value(value: u16) -> Self {
666 Self(value)
667 }
668 #[deprecated(since = "2.3.0", note = "use Script::Ethiopic instead")]
670 #[allow(non_upper_case_globals)]
671 pub const Ethiopian: Self = Self::Ethiopic;
672 #[deprecated(since = "2.3.0", note = "use Script::ArabicNastaliq instead")]
674 #[allow(non_upper_case_globals)]
675 pub const Nastaliq: Self = Self::ArabicNastaliq;
676}
677
678impl Default for Script {
679 fn default() -> Self {
680 Self::Unknown
681 }
682}
683
684impl Script {
685 #[doc(hidden)]
687 #[allow(non_upper_case_globals)]
688 #[deprecated]
689 pub const Chisoi: Script = Self(60_000);
691}
692
693#[cfg(feature = "compiled_data")]
695impl From<Script> for icu_locale_core::subtags::Script {
696 fn from(value: Script) -> Self {
697 crate::PropertyNamesShort::new()
698 .get_locale_script(value)
699 .unwrap_or(const {
use ::icu_locale_core::subtags::Script;
match Script::try_from_utf8("Zzzz".as_bytes()) {
Ok(r) => r,
_ => {
::core::panicking::panic_fmt(format_args!("Invalid subtags::Script: Zzzz"));
}
}
}icu_locale_core::subtags::script!("Zzzz"))
700 }
701}
702
703#[cfg(feature = "compiled_data")]
705impl From<icu_locale_core::subtags::Script> for Script {
706 fn from(value: icu_locale_core::subtags::Script) -> Self {
707 crate::PropertyParser::new()
708 .get_strict(value.as_str())
709 .unwrap_or(Self::Unknown)
710 }
711}
712
713impl crate::private::Sealed for Script {}
impl EnumeratedProperty for Script {
type DataMarker = crate::provider::PropertyEnumScriptV1;
const SINGLETON:
&'static crate::provider::PropertyCodePointMap<'static, Self> =
crate::provider::Baked::SINGLETON_PROPERTY_ENUM_SCRIPT_V1;
const NAME: &'static [u8] = "Script".as_bytes();
const SHORT_NAME: &'static [u8] = "sc".as_bytes();
}
impl zerovec::ule::AsULE for Script {
type ULE = <u16 as zerovec::ule::AsULE>::ULE;
fn to_unaligned(self) -> Self::ULE { self.0.to_unaligned() }
fn from_unaligned(unaligned: Self::ULE) -> Self {
Self(zerovec::ule::AsULE::from_unaligned(unaligned))
}
}make_enumerated_property! {
714 name: "Script";
715 short_name: "sc";
716 ident: Script;
717 data_marker: crate::provider::PropertyEnumScriptV1;
718 singleton: SINGLETON_PROPERTY_ENUM_SCRIPT_V1;
719 ule_ty: <u16 as zerovec::ule::AsULE>::ULE;
720}
721
722#[derive(#[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::marker::Copy for HangulSyllableType { }Copy, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::clone::Clone for HangulSyllableType {
#[inline]
fn clone(&self) -> HangulSyllableType {
let _: ::core::clone::AssertParamIsClone<u8>;
*self
}
}Clone, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::fmt::Debug for HangulSyllableType {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::debug_tuple_field1_finish(f,
"HangulSyllableType", &&self.0)
}
}Debug, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::cmp::Eq for HangulSyllableType {
#[inline]
#[doc(hidden)]
#[coverage(off)]
fn assert_fields_are_eq(&self) {
let _: ::core::cmp::AssertParamIsEq<u8>;
}
}Eq, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::cmp::PartialEq for HangulSyllableType {
#[inline]
fn eq(&self, other: &HangulSyllableType) -> bool { self.0 == other.0 }
}PartialEq, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::cmp::Ord for HangulSyllableType {
#[inline]
fn cmp(&self, other: &HangulSyllableType) -> ::core::cmp::Ordering {
::core::cmp::Ord::cmp(&self.0, &other.0)
}
}Ord, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::cmp::PartialOrd for HangulSyllableType {
#[inline]
fn partial_cmp(&self, other: &HangulSyllableType)
-> ::core::option::Option<::core::cmp::Ordering> {
::core::option::Option::Some(::core::cmp::Ord::cmp(self, other))
}
}PartialOrd, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::hash::Hash for HangulSyllableType {
#[inline]
fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) {
::core::hash::Hash::hash(&self.0, state)
}
}Hash)]
744#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
745#[allow(clippy::exhaustive_structs)] #[repr(transparent)]
747pub struct HangulSyllableType(pub(crate) u8);
748
749impl HangulSyllableType {
750 #[deprecated(
752 since = "2.3.0",
753 note = "please comment on https://github.com/unicode-org/icu4x/issues/6067 if you need this"
754 )]
755 pub const fn to_icu4c_value(self) -> u8 {
756 self.0
757 }
758 #[deprecated(
760 since = "2.3.0",
761 note = "please comment on https://github.com/unicode-org/icu4x/issues/6067 if you need this"
762 )]
763 pub const fn from_icu4c_value(value: u8) -> Self {
764 Self(value)
765 }
766 #[deprecated(since = "2.3.0", note = "use HangulSyllableType::LVSyllable instead")]
768 #[allow(non_upper_case_globals)]
769 pub const LeadingVowelSyllable: Self = Self::LVSyllable;
770 #[deprecated(since = "2.3.0", note = "use HangulSyllableType::LVTSyllable instead")]
772 #[allow(non_upper_case_globals)]
773 pub const LeadingVowelTrailingSyllable: Self = Self::LVTSyllable;
774}
775
776impl Default for HangulSyllableType {
777 fn default() -> Self {
778 Self::NotApplicable
779 }
780}
781
782impl crate::private::Sealed for HangulSyllableType {}
impl EnumeratedProperty for HangulSyllableType {
type DataMarker = crate::provider::PropertyEnumHangulSyllableTypeV1;
const SINGLETON:
&'static crate::provider::PropertyCodePointMap<'static, Self> =
crate::provider::Baked::SINGLETON_PROPERTY_ENUM_HANGUL_SYLLABLE_TYPE_V1;
const NAME: &'static [u8] = "Hangul_Syllable_Type".as_bytes();
const SHORT_NAME: &'static [u8] = "hst".as_bytes();
}
impl zerovec::ule::AsULE for HangulSyllableType {
type ULE = u8;
fn to_unaligned(self) -> Self::ULE { self.0.to_unaligned() }
fn from_unaligned(unaligned: Self::ULE) -> Self {
Self(zerovec::ule::AsULE::from_unaligned(unaligned))
}
}make_enumerated_property! {
783 name: "Hangul_Syllable_Type";
784 short_name: "hst";
785 ident: HangulSyllableType;
786 data_marker: crate::provider::PropertyEnumHangulSyllableTypeV1;
787 singleton: SINGLETON_PROPERTY_ENUM_HANGUL_SYLLABLE_TYPE_V1;
788 ule_ty: u8;
789
790}
791
792#[derive(#[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::marker::Copy for EastAsianWidth { }Copy, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::clone::Clone for EastAsianWidth {
#[inline]
fn clone(&self) -> EastAsianWidth {
let _: ::core::clone::AssertParamIsClone<u8>;
*self
}
}Clone, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::fmt::Debug for EastAsianWidth {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::debug_tuple_field1_finish(f, "EastAsianWidth",
&&self.0)
}
}Debug, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::cmp::Eq for EastAsianWidth {
#[inline]
#[doc(hidden)]
#[coverage(off)]
fn assert_fields_are_eq(&self) {
let _: ::core::cmp::AssertParamIsEq<u8>;
}
}Eq, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::cmp::PartialEq for EastAsianWidth {
#[inline]
fn eq(&self, other: &EastAsianWidth) -> bool { self.0 == other.0 }
}PartialEq, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::cmp::Ord for EastAsianWidth {
#[inline]
fn cmp(&self, other: &EastAsianWidth) -> ::core::cmp::Ordering {
::core::cmp::Ord::cmp(&self.0, &other.0)
}
}Ord, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::cmp::PartialOrd for EastAsianWidth {
#[inline]
fn partial_cmp(&self, other: &EastAsianWidth)
-> ::core::option::Option<::core::cmp::Ordering> {
::core::option::Option::Some(::core::cmp::Ord::cmp(self, other))
}
}PartialOrd, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::hash::Hash for EastAsianWidth {
#[inline]
fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) {
::core::hash::Hash::hash(&self.0, state)
}
}Hash)]
812#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
813#[allow(clippy::exhaustive_structs)] #[repr(transparent)]
815pub struct EastAsianWidth(pub(crate) u8);
816
817impl EastAsianWidth {
818 #[deprecated(
820 since = "2.3.0",
821 note = "please comment on https://github.com/unicode-org/icu4x/issues/6067 if you need this"
822 )]
823 pub const fn to_icu4c_value(self) -> u8 {
824 self.0
825 }
826 #[deprecated(
828 since = "2.3.0",
829 note = "please comment on https://github.com/unicode-org/icu4x/issues/6067 if you need this"
830 )]
831 pub const fn from_icu4c_value(value: u8) -> Self {
832 Self(value)
833 }
834}
835
836impl Default for EastAsianWidth {
837 fn default() -> Self {
838 Self::Neutral
839 }
840}
841
842impl crate::private::Sealed for EastAsianWidth {}
impl EnumeratedProperty for EastAsianWidth {
type DataMarker = crate::provider::PropertyEnumEastAsianWidthV1;
const SINGLETON:
&'static crate::provider::PropertyCodePointMap<'static, Self> =
crate::provider::Baked::SINGLETON_PROPERTY_ENUM_EAST_ASIAN_WIDTH_V1;
const NAME: &'static [u8] = "East_Asian_Width".as_bytes();
const SHORT_NAME: &'static [u8] = "ea".as_bytes();
}
impl zerovec::ule::AsULE for EastAsianWidth {
type ULE = u8;
fn to_unaligned(self) -> Self::ULE { self.0.to_unaligned() }
fn from_unaligned(unaligned: Self::ULE) -> Self {
Self(zerovec::ule::AsULE::from_unaligned(unaligned))
}
}make_enumerated_property! {
843 name: "East_Asian_Width";
844 short_name: "ea";
845 ident: EastAsianWidth;
846 data_marker: crate::provider::PropertyEnumEastAsianWidthV1;
847 singleton: SINGLETON_PROPERTY_ENUM_EAST_ASIAN_WIDTH_V1;
848 ule_ty: u8;
849}
850
851#[derive(#[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::marker::Copy for LineBreak { }Copy, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::clone::Clone for LineBreak {
#[inline]
fn clone(&self) -> LineBreak {
let _: ::core::clone::AssertParamIsClone<u8>;
*self
}
}Clone, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::fmt::Debug for LineBreak {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::debug_tuple_field1_finish(f, "LineBreak",
&&self.0)
}
}Debug, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::cmp::Eq for LineBreak {
#[inline]
#[doc(hidden)]
#[coverage(off)]
fn assert_fields_are_eq(&self) {
let _: ::core::cmp::AssertParamIsEq<u8>;
}
}Eq, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::cmp::PartialEq for LineBreak {
#[inline]
fn eq(&self, other: &LineBreak) -> bool { self.0 == other.0 }
}PartialEq, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::cmp::Ord for LineBreak {
#[inline]
fn cmp(&self, other: &LineBreak) -> ::core::cmp::Ordering {
::core::cmp::Ord::cmp(&self.0, &other.0)
}
}Ord, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::cmp::PartialOrd for LineBreak {
#[inline]
fn partial_cmp(&self, other: &LineBreak)
-> ::core::option::Option<::core::cmp::Ordering> {
::core::option::Option::Some(::core::cmp::Ord::cmp(self, other))
}
}PartialOrd, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::hash::Hash for LineBreak {
#[inline]
fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) {
::core::hash::Hash::hash(&self.0, state)
}
}Hash)]
875#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
876#[allow(clippy::exhaustive_structs)] #[repr(transparent)]
878pub struct LineBreak(pub(crate) u8);
879
880impl LineBreak {
881 #[deprecated(
883 since = "2.3.0",
884 note = "please comment on https://github.com/unicode-org/icu4x/issues/6067 if you need this"
885 )]
886 pub const fn to_icu4c_value(self) -> u8 {
887 self.0
888 }
889 #[deprecated(
891 since = "2.3.0",
892 note = "please comment on https://github.com/unicode-org/icu4x/issues/6067 if you need this"
893 )]
894 pub const fn from_icu4c_value(value: u8) -> Self {
895 Self(value)
896 }
897}
898
899impl Default for LineBreak {
900 fn default() -> Self {
901 Self::Unknown
902 }
903}
904
905impl crate::private::Sealed for LineBreak {}
impl EnumeratedProperty for LineBreak {
type DataMarker = crate::provider::PropertyEnumLineBreakV1;
const SINGLETON:
&'static crate::provider::PropertyCodePointMap<'static, Self> =
crate::provider::Baked::SINGLETON_PROPERTY_ENUM_LINE_BREAK_V1;
const NAME: &'static [u8] = "Line_Break".as_bytes();
const SHORT_NAME: &'static [u8] = "lb".as_bytes();
}
impl zerovec::ule::AsULE for LineBreak {
type ULE = u8;
fn to_unaligned(self) -> Self::ULE { self.0.to_unaligned() }
fn from_unaligned(unaligned: Self::ULE) -> Self {
Self(zerovec::ule::AsULE::from_unaligned(unaligned))
}
}make_enumerated_property! {
906 name: "Line_Break";
907 short_name: "lb";
908 ident: LineBreak;
909 data_marker: crate::provider::PropertyEnumLineBreakV1;
910 singleton: SINGLETON_PROPERTY_ENUM_LINE_BREAK_V1;
911 ule_ty: u8;
912}
913
914#[derive(#[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::marker::Copy for GraphemeClusterBreak { }Copy, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::clone::Clone for GraphemeClusterBreak {
#[inline]
fn clone(&self) -> GraphemeClusterBreak {
let _: ::core::clone::AssertParamIsClone<u8>;
*self
}
}Clone, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::fmt::Debug for GraphemeClusterBreak {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::debug_tuple_field1_finish(f,
"GraphemeClusterBreak", &&self.0)
}
}Debug, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::cmp::Eq for GraphemeClusterBreak {
#[inline]
#[doc(hidden)]
#[coverage(off)]
fn assert_fields_are_eq(&self) {
let _: ::core::cmp::AssertParamIsEq<u8>;
}
}Eq, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::cmp::PartialEq for GraphemeClusterBreak {
#[inline]
fn eq(&self, other: &GraphemeClusterBreak) -> bool { self.0 == other.0 }
}PartialEq, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::cmp::Ord for GraphemeClusterBreak {
#[inline]
fn cmp(&self, other: &GraphemeClusterBreak) -> ::core::cmp::Ordering {
::core::cmp::Ord::cmp(&self.0, &other.0)
}
}Ord, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::cmp::PartialOrd for GraphemeClusterBreak {
#[inline]
fn partial_cmp(&self, other: &GraphemeClusterBreak)
-> ::core::option::Option<::core::cmp::Ordering> {
::core::option::Option::Some(::core::cmp::Ord::cmp(self, other))
}
}PartialOrd, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::hash::Hash for GraphemeClusterBreak {
#[inline]
fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) {
::core::hash::Hash::hash(&self.0, state)
}
}Hash)]
937#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
938#[allow(clippy::exhaustive_structs)] #[repr(transparent)]
940pub struct GraphemeClusterBreak(pub(crate) u8);
941
942impl GraphemeClusterBreak {
943 #[deprecated(
945 since = "2.3.0",
946 note = "please comment on https://github.com/unicode-org/icu4x/issues/6067 if you need this"
947 )]
948 pub const fn to_icu4c_value(self) -> u8 {
949 self.0
950 }
951 #[deprecated(
953 since = "2.3.0",
954 note = "please comment on https://github.com/unicode-org/icu4x/issues/6067 if you need this"
955 )]
956 pub const fn from_icu4c_value(value: u8) -> Self {
957 Self(value)
958 }
959}
960
961impl Default for GraphemeClusterBreak {
962 fn default() -> Self {
963 Self::Other
964 }
965}
966
967impl crate::private::Sealed for GraphemeClusterBreak {}
impl EnumeratedProperty for GraphemeClusterBreak {
type DataMarker = crate::provider::PropertyEnumGraphemeClusterBreakV1;
const SINGLETON:
&'static crate::provider::PropertyCodePointMap<'static, Self> =
crate::provider::Baked::SINGLETON_PROPERTY_ENUM_GRAPHEME_CLUSTER_BREAK_V1;
const NAME: &'static [u8] = "Grapheme_Cluster_Break".as_bytes();
const SHORT_NAME: &'static [u8] = "GCB".as_bytes();
}
impl zerovec::ule::AsULE for GraphemeClusterBreak {
type ULE = u8;
fn to_unaligned(self) -> Self::ULE { self.0.to_unaligned() }
fn from_unaligned(unaligned: Self::ULE) -> Self {
Self(zerovec::ule::AsULE::from_unaligned(unaligned))
}
}make_enumerated_property! {
968 name: "Grapheme_Cluster_Break";
969 short_name: "GCB";
970 ident: GraphemeClusterBreak;
971 data_marker: crate::provider::PropertyEnumGraphemeClusterBreakV1;
972 singleton: SINGLETON_PROPERTY_ENUM_GRAPHEME_CLUSTER_BREAK_V1;
973 ule_ty: u8;
974}
975
976#[derive(#[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::marker::Copy for WordBreak { }Copy, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::clone::Clone for WordBreak {
#[inline]
fn clone(&self) -> WordBreak {
let _: ::core::clone::AssertParamIsClone<u8>;
*self
}
}Clone, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::fmt::Debug for WordBreak {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::debug_tuple_field1_finish(f, "WordBreak",
&&self.0)
}
}Debug, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::cmp::Eq for WordBreak {
#[inline]
#[doc(hidden)]
#[coverage(off)]
fn assert_fields_are_eq(&self) {
let _: ::core::cmp::AssertParamIsEq<u8>;
}
}Eq, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::cmp::PartialEq for WordBreak {
#[inline]
fn eq(&self, other: &WordBreak) -> bool { self.0 == other.0 }
}PartialEq, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::cmp::Ord for WordBreak {
#[inline]
fn cmp(&self, other: &WordBreak) -> ::core::cmp::Ordering {
::core::cmp::Ord::cmp(&self.0, &other.0)
}
}Ord, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::cmp::PartialOrd for WordBreak {
#[inline]
fn partial_cmp(&self, other: &WordBreak)
-> ::core::option::Option<::core::cmp::Ordering> {
::core::option::Option::Some(::core::cmp::Ord::cmp(self, other))
}
}PartialOrd, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::hash::Hash for WordBreak {
#[inline]
fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) {
::core::hash::Hash::hash(&self.0, state)
}
}Hash)]
999#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
1000#[allow(clippy::exhaustive_structs)] #[repr(transparent)]
1002pub struct WordBreak(pub(crate) u8);
1003
1004impl WordBreak {
1005 #[deprecated(
1007 since = "2.3.0",
1008 note = "please comment on https://github.com/unicode-org/icu4x/issues/6067 if you need this"
1009 )]
1010 pub const fn to_icu4c_value(self) -> u8 {
1011 self.0
1012 }
1013 #[deprecated(
1015 since = "2.3.0",
1016 note = "please comment on https://github.com/unicode-org/icu4x/issues/6067 if you need this"
1017 )]
1018 pub const fn from_icu4c_value(value: u8) -> Self {
1019 Self(value)
1020 }
1021}
1022
1023impl Default for WordBreak {
1024 fn default() -> Self {
1025 Self::Other
1026 }
1027}
1028
1029impl crate::private::Sealed for WordBreak {}
impl EnumeratedProperty for WordBreak {
type DataMarker = crate::provider::PropertyEnumWordBreakV1;
const SINGLETON:
&'static crate::provider::PropertyCodePointMap<'static, Self> =
crate::provider::Baked::SINGLETON_PROPERTY_ENUM_WORD_BREAK_V1;
const NAME: &'static [u8] = "Word_Break".as_bytes();
const SHORT_NAME: &'static [u8] = "WB".as_bytes();
}
impl zerovec::ule::AsULE for WordBreak {
type ULE = u8;
fn to_unaligned(self) -> Self::ULE { self.0.to_unaligned() }
fn from_unaligned(unaligned: Self::ULE) -> Self {
Self(zerovec::ule::AsULE::from_unaligned(unaligned))
}
}make_enumerated_property! {
1030 name: "Word_Break";
1031 short_name: "WB";
1032 ident: WordBreak;
1033 data_marker: crate::provider::PropertyEnumWordBreakV1;
1034 singleton: SINGLETON_PROPERTY_ENUM_WORD_BREAK_V1;
1035 ule_ty: u8;
1036}
1037
1038#[derive(#[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::marker::Copy for SentenceBreak { }Copy, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::clone::Clone for SentenceBreak {
#[inline]
fn clone(&self) -> SentenceBreak {
let _: ::core::clone::AssertParamIsClone<u8>;
*self
}
}Clone, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::fmt::Debug for SentenceBreak {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::debug_tuple_field1_finish(f, "SentenceBreak",
&&self.0)
}
}Debug, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::cmp::Eq for SentenceBreak {
#[inline]
#[doc(hidden)]
#[coverage(off)]
fn assert_fields_are_eq(&self) {
let _: ::core::cmp::AssertParamIsEq<u8>;
}
}Eq, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::cmp::PartialEq for SentenceBreak {
#[inline]
fn eq(&self, other: &SentenceBreak) -> bool { self.0 == other.0 }
}PartialEq, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::cmp::Ord for SentenceBreak {
#[inline]
fn cmp(&self, other: &SentenceBreak) -> ::core::cmp::Ordering {
::core::cmp::Ord::cmp(&self.0, &other.0)
}
}Ord, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::cmp::PartialOrd for SentenceBreak {
#[inline]
fn partial_cmp(&self, other: &SentenceBreak)
-> ::core::option::Option<::core::cmp::Ordering> {
::core::option::Option::Some(::core::cmp::Ord::cmp(self, other))
}
}PartialOrd, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::hash::Hash for SentenceBreak {
#[inline]
fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) {
::core::hash::Hash::hash(&self.0, state)
}
}Hash)]
1061#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
1062#[allow(clippy::exhaustive_structs)] #[repr(transparent)]
1064pub struct SentenceBreak(pub(crate) u8);
1065
1066impl SentenceBreak {
1067 #[deprecated(
1069 since = "2.3.0",
1070 note = "please comment on https://github.com/unicode-org/icu4x/issues/6067 if you need this"
1071 )]
1072 pub const fn to_icu4c_value(self) -> u8 {
1073 self.0
1074 }
1075 #[deprecated(
1077 since = "2.3.0",
1078 note = "please comment on https://github.com/unicode-org/icu4x/issues/6067 if you need this"
1079 )]
1080 pub const fn from_icu4c_value(value: u8) -> Self {
1081 Self(value)
1082 }
1083}
1084
1085impl Default for SentenceBreak {
1086 fn default() -> Self {
1087 Self::Other
1088 }
1089}
1090
1091impl crate::private::Sealed for SentenceBreak {}
impl EnumeratedProperty for SentenceBreak {
type DataMarker = crate::provider::PropertyEnumSentenceBreakV1;
const SINGLETON:
&'static crate::provider::PropertyCodePointMap<'static, Self> =
crate::provider::Baked::SINGLETON_PROPERTY_ENUM_SENTENCE_BREAK_V1;
const NAME: &'static [u8] = "Sentence_Break".as_bytes();
const SHORT_NAME: &'static [u8] = "SB".as_bytes();
}
impl zerovec::ule::AsULE for SentenceBreak {
type ULE = u8;
fn to_unaligned(self) -> Self::ULE { self.0.to_unaligned() }
fn from_unaligned(unaligned: Self::ULE) -> Self {
Self(zerovec::ule::AsULE::from_unaligned(unaligned))
}
}make_enumerated_property! {
1092 name: "Sentence_Break";
1093 short_name: "SB";
1094 ident: SentenceBreak;
1095 data_marker: crate::provider::PropertyEnumSentenceBreakV1;
1096 singleton: SINGLETON_PROPERTY_ENUM_SENTENCE_BREAK_V1;
1097 ule_ty: u8;
1098}
1099
1100#[derive(#[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::marker::Copy for CanonicalCombiningClass { }Copy, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::clone::Clone for CanonicalCombiningClass {
#[inline]
fn clone(&self) -> CanonicalCombiningClass {
let _: ::core::clone::AssertParamIsClone<u8>;
*self
}
}Clone, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::fmt::Debug for CanonicalCombiningClass {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::debug_tuple_field1_finish(f,
"CanonicalCombiningClass", &&self.0)
}
}Debug, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::cmp::Eq for CanonicalCombiningClass {
#[inline]
#[doc(hidden)]
#[coverage(off)]
fn assert_fields_are_eq(&self) {
let _: ::core::cmp::AssertParamIsEq<u8>;
}
}Eq, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::cmp::PartialEq for CanonicalCombiningClass {
#[inline]
fn eq(&self, other: &CanonicalCombiningClass) -> bool {
self.0 == other.0
}
}PartialEq, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::cmp::Ord for CanonicalCombiningClass {
#[inline]
fn cmp(&self, other: &CanonicalCombiningClass) -> ::core::cmp::Ordering {
::core::cmp::Ord::cmp(&self.0, &other.0)
}
}Ord, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::cmp::PartialOrd for CanonicalCombiningClass {
#[inline]
fn partial_cmp(&self, other: &CanonicalCombiningClass)
-> ::core::option::Option<::core::cmp::Ordering> {
::core::option::Option::Some(::core::cmp::Ord::cmp(self, other))
}
}PartialOrd, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::hash::Hash for CanonicalCombiningClass {
#[inline]
fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) {
::core::hash::Hash::hash(&self.0, state)
}
}Hash)]
1127#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
1128#[allow(clippy::exhaustive_structs)] #[repr(transparent)]
1130pub struct CanonicalCombiningClass(pub u8);
1131
1132impl CanonicalCombiningClass {
1133 #[deprecated(
1135 since = "2.3.0",
1136 note = "please comment on https://github.com/unicode-org/icu4x/issues/6067 if you need this"
1137 )]
1138 pub const fn to_icu4c_value(self) -> u8 {
1139 self.0
1140 }
1141 #[deprecated(
1143 since = "2.3.0",
1144 note = "please comment on https://github.com/unicode-org/icu4x/issues/6067 if you need this"
1145 )]
1146 pub const fn from_icu4c_value(value: u8) -> Self {
1147 Self(value)
1148 }
1149}
1150
1151impl Default for CanonicalCombiningClass {
1152 fn default() -> Self {
1153 Self::NotReordered
1154 }
1155}
1156
1157impl crate::private::Sealed for CanonicalCombiningClass {}
impl EnumeratedProperty for CanonicalCombiningClass {
type DataMarker = crate::provider::PropertyEnumCanonicalCombiningClassV1;
const SINGLETON:
&'static crate::provider::PropertyCodePointMap<'static, Self> =
crate::provider::Baked::SINGLETON_PROPERTY_ENUM_CANONICAL_COMBINING_CLASS_V1;
const NAME: &'static [u8] = "Canonical_Combining_Class".as_bytes();
const SHORT_NAME: &'static [u8] = "ccc".as_bytes();
}
impl zerovec::ule::AsULE for CanonicalCombiningClass {
type ULE = u8;
fn to_unaligned(self) -> Self::ULE { self.0.to_unaligned() }
fn from_unaligned(unaligned: Self::ULE) -> Self {
Self(zerovec::ule::AsULE::from_unaligned(unaligned))
}
}make_enumerated_property! {
1158 name: "Canonical_Combining_Class";
1159 short_name: "ccc";
1160 ident: CanonicalCombiningClass;
1161 data_marker: crate::provider::PropertyEnumCanonicalCombiningClassV1;
1162 singleton: SINGLETON_PROPERTY_ENUM_CANONICAL_COMBINING_CLASS_V1;
1163 ule_ty: u8;
1164}
1165
1166#[derive(#[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::marker::Copy for IndicConjunctBreak { }Copy, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::clone::Clone for IndicConjunctBreak {
#[inline]
fn clone(&self) -> IndicConjunctBreak {
let _: ::core::clone::AssertParamIsClone<u8>;
*self
}
}Clone, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::fmt::Debug for IndicConjunctBreak {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::debug_tuple_field1_finish(f,
"IndicConjunctBreak", &&self.0)
}
}Debug, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::cmp::Eq for IndicConjunctBreak {
#[inline]
#[doc(hidden)]
#[coverage(off)]
fn assert_fields_are_eq(&self) {
let _: ::core::cmp::AssertParamIsEq<u8>;
}
}Eq, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::cmp::PartialEq for IndicConjunctBreak {
#[inline]
fn eq(&self, other: &IndicConjunctBreak) -> bool { self.0 == other.0 }
}PartialEq, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::cmp::Ord for IndicConjunctBreak {
#[inline]
fn cmp(&self, other: &IndicConjunctBreak) -> ::core::cmp::Ordering {
::core::cmp::Ord::cmp(&self.0, &other.0)
}
}Ord, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::cmp::PartialOrd for IndicConjunctBreak {
#[inline]
fn partial_cmp(&self, other: &IndicConjunctBreak)
-> ::core::option::Option<::core::cmp::Ordering> {
::core::option::Option::Some(::core::cmp::Ord::cmp(self, other))
}
}PartialOrd, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::hash::Hash for IndicConjunctBreak {
#[inline]
fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) {
::core::hash::Hash::hash(&self.0, state)
}
}Hash)]
1193#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
1194#[allow(clippy::exhaustive_structs)] #[repr(transparent)]
1196pub struct IndicConjunctBreak(pub(crate) u8);
1197
1198impl IndicConjunctBreak {
1199 #[deprecated(
1201 since = "2.3.0",
1202 note = "please comment on https://github.com/unicode-org/icu4x/issues/6067 if you need this"
1203 )]
1204 pub const fn to_icu4c_value(self) -> u8 {
1205 self.0
1206 }
1207 #[deprecated(
1209 since = "2.3.0",
1210 note = "please comment on https://github.com/unicode-org/icu4x/issues/6067 if you need this"
1211 )]
1212 pub const fn from_icu4c_value(value: u8) -> Self {
1213 Self(value)
1214 }
1215}
1216
1217impl Default for IndicConjunctBreak {
1218 fn default() -> Self {
1219 Self::None
1220 }
1221}
1222
1223impl crate::private::Sealed for IndicConjunctBreak {}
impl EnumeratedProperty for IndicConjunctBreak {
type DataMarker = crate::provider::PropertyEnumIndicConjunctBreakV1;
const SINGLETON:
&'static crate::provider::PropertyCodePointMap<'static, Self> =
crate::provider::Baked::SINGLETON_PROPERTY_ENUM_INDIC_CONJUNCT_BREAK_V1;
const NAME: &'static [u8] = "Indic_Conjunct_Break".as_bytes();
const SHORT_NAME: &'static [u8] = "InCB".as_bytes();
}
impl zerovec::ule::AsULE for IndicConjunctBreak {
type ULE = u8;
fn to_unaligned(self) -> Self::ULE { self.0.to_unaligned() }
fn from_unaligned(unaligned: Self::ULE) -> Self {
Self(zerovec::ule::AsULE::from_unaligned(unaligned))
}
}make_enumerated_property! {
1224 name: "Indic_Conjunct_Break";
1225 short_name: "InCB";
1226 ident: IndicConjunctBreak;
1227 data_marker: crate::provider::PropertyEnumIndicConjunctBreakV1;
1228 singleton: SINGLETON_PROPERTY_ENUM_INDIC_CONJUNCT_BREAK_V1;
1229 ule_ty: u8;
1230}
1231
1232#[derive(#[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::marker::Copy for IndicSyllabicCategory { }Copy, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::clone::Clone for IndicSyllabicCategory {
#[inline]
fn clone(&self) -> IndicSyllabicCategory {
let _: ::core::clone::AssertParamIsClone<u8>;
*self
}
}Clone, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::fmt::Debug for IndicSyllabicCategory {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::debug_tuple_field1_finish(f,
"IndicSyllabicCategory", &&self.0)
}
}Debug, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::cmp::Eq for IndicSyllabicCategory {
#[inline]
#[doc(hidden)]
#[coverage(off)]
fn assert_fields_are_eq(&self) {
let _: ::core::cmp::AssertParamIsEq<u8>;
}
}Eq, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::cmp::PartialEq for IndicSyllabicCategory {
#[inline]
fn eq(&self, other: &IndicSyllabicCategory) -> bool { self.0 == other.0 }
}PartialEq, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::cmp::Ord for IndicSyllabicCategory {
#[inline]
fn cmp(&self, other: &IndicSyllabicCategory) -> ::core::cmp::Ordering {
::core::cmp::Ord::cmp(&self.0, &other.0)
}
}Ord, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::cmp::PartialOrd for IndicSyllabicCategory {
#[inline]
fn partial_cmp(&self, other: &IndicSyllabicCategory)
-> ::core::option::Option<::core::cmp::Ordering> {
::core::option::Option::Some(::core::cmp::Ord::cmp(self, other))
}
}PartialOrd, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::hash::Hash for IndicSyllabicCategory {
#[inline]
fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) {
::core::hash::Hash::hash(&self.0, state)
}
}Hash)]
1251#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
1252#[allow(clippy::exhaustive_structs)] #[repr(transparent)]
1254pub struct IndicSyllabicCategory(pub(crate) u8);
1255
1256impl IndicSyllabicCategory {
1257 #[deprecated(
1259 since = "2.3.0",
1260 note = "please comment on https://github.com/unicode-org/icu4x/issues/6067 if you need this"
1261 )]
1262 pub const fn to_icu4c_value(self) -> u8 {
1263 self.0
1264 }
1265 #[deprecated(
1267 since = "2.3.0",
1268 note = "please comment on https://github.com/unicode-org/icu4x/issues/6067 if you need this"
1269 )]
1270 pub const fn from_icu4c_value(value: u8) -> Self {
1271 Self(value)
1272 }
1273}
1274
1275impl Default for IndicSyllabicCategory {
1276 fn default() -> Self {
1277 Self::Other
1278 }
1279}
1280
1281impl crate::private::Sealed for IndicSyllabicCategory {}
impl EnumeratedProperty for IndicSyllabicCategory {
type DataMarker = crate::provider::PropertyEnumIndicSyllabicCategoryV1;
const SINGLETON:
&'static crate::provider::PropertyCodePointMap<'static, Self> =
crate::provider::Baked::SINGLETON_PROPERTY_ENUM_INDIC_SYLLABIC_CATEGORY_V1;
const NAME: &'static [u8] = "Indic_Syllabic_Category".as_bytes();
const SHORT_NAME: &'static [u8] = "InSC".as_bytes();
}
impl zerovec::ule::AsULE for IndicSyllabicCategory {
type ULE = u8;
fn to_unaligned(self) -> Self::ULE { self.0.to_unaligned() }
fn from_unaligned(unaligned: Self::ULE) -> Self {
Self(zerovec::ule::AsULE::from_unaligned(unaligned))
}
}make_enumerated_property! {
1282 name: "Indic_Syllabic_Category";
1283 short_name: "InSC";
1284 ident: IndicSyllabicCategory;
1285 data_marker: crate::provider::PropertyEnumIndicSyllabicCategoryV1;
1286 singleton: SINGLETON_PROPERTY_ENUM_INDIC_SYLLABIC_CATEGORY_V1;
1287 ule_ty: u8;
1288}
1289
1290#[derive(#[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::marker::Copy for JoiningGroup { }Copy, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::clone::Clone for JoiningGroup {
#[inline]
fn clone(&self) -> JoiningGroup {
let _: ::core::clone::AssertParamIsClone<u8>;
*self
}
}Clone, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::fmt::Debug for JoiningGroup {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::debug_tuple_field1_finish(f, "JoiningGroup",
&&self.0)
}
}Debug, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::cmp::Eq for JoiningGroup {
#[inline]
#[doc(hidden)]
#[coverage(off)]
fn assert_fields_are_eq(&self) {
let _: ::core::cmp::AssertParamIsEq<u8>;
}
}Eq, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::cmp::PartialEq for JoiningGroup {
#[inline]
fn eq(&self, other: &JoiningGroup) -> bool { self.0 == other.0 }
}PartialEq, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::cmp::Ord for JoiningGroup {
#[inline]
fn cmp(&self, other: &JoiningGroup) -> ::core::cmp::Ordering {
::core::cmp::Ord::cmp(&self.0, &other.0)
}
}Ord, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::cmp::PartialOrd for JoiningGroup {
#[inline]
fn partial_cmp(&self, other: &JoiningGroup)
-> ::core::option::Option<::core::cmp::Ordering> {
::core::option::Option::Some(::core::cmp::Ord::cmp(self, other))
}
}PartialOrd, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::hash::Hash for JoiningGroup {
#[inline]
fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) {
::core::hash::Hash::hash(&self.0, state)
}
}Hash)]
1308#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
1309#[allow(clippy::exhaustive_structs)] #[repr(transparent)]
1311pub struct JoiningGroup(pub(crate) u8);
1312
1313impl JoiningGroup {
1314 #[deprecated(
1316 since = "2.3.0",
1317 note = "please comment on https://github.com/unicode-org/icu4x/issues/6067 if you need this"
1318 )]
1319 pub const fn to_icu4c_value(self) -> u8 {
1320 self.0
1321 }
1322 #[deprecated(
1324 since = "2.3.0",
1325 note = "please comment on https://github.com/unicode-org/icu4x/issues/6067 if you need this"
1326 )]
1327 pub const fn from_icu4c_value(value: u8) -> Self {
1328 Self(value)
1329 }
1330}
1331
1332impl Default for JoiningGroup {
1333 fn default() -> Self {
1334 Self::NoJoiningGroup
1335 }
1336}
1337
1338impl crate::private::Sealed for JoiningGroup {}
impl EnumeratedProperty for JoiningGroup {
type DataMarker = crate::provider::PropertyEnumJoiningGroupV1;
const SINGLETON:
&'static crate::provider::PropertyCodePointMap<'static, Self> =
crate::provider::Baked::SINGLETON_PROPERTY_ENUM_JOINING_GROUP_V1;
const NAME: &'static [u8] = "Joining_Group".as_bytes();
const SHORT_NAME: &'static [u8] = "jg".as_bytes();
}
impl zerovec::ule::AsULE for JoiningGroup {
type ULE = u8;
fn to_unaligned(self) -> Self::ULE { self.0.to_unaligned() }
fn from_unaligned(unaligned: Self::ULE) -> Self {
Self(zerovec::ule::AsULE::from_unaligned(unaligned))
}
}make_enumerated_property! {
1339 name: "Joining_Group";
1340 short_name: "jg";
1341 ident: JoiningGroup;
1342 data_marker: crate::provider::PropertyEnumJoiningGroupV1;
1343 singleton: SINGLETON_PROPERTY_ENUM_JOINING_GROUP_V1;
1344 ule_ty: u8;
1345}
1346
1347#[derive(#[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::marker::Copy for JoiningType { }Copy, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::clone::Clone for JoiningType {
#[inline]
fn clone(&self) -> JoiningType {
let _: ::core::clone::AssertParamIsClone<u8>;
*self
}
}Clone, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::fmt::Debug for JoiningType {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::debug_tuple_field1_finish(f, "JoiningType",
&&self.0)
}
}Debug, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::cmp::Eq for JoiningType {
#[inline]
#[doc(hidden)]
#[coverage(off)]
fn assert_fields_are_eq(&self) {
let _: ::core::cmp::AssertParamIsEq<u8>;
}
}Eq, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::cmp::PartialEq for JoiningType {
#[inline]
fn eq(&self, other: &JoiningType) -> bool { self.0 == other.0 }
}PartialEq, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::cmp::Ord for JoiningType {
#[inline]
fn cmp(&self, other: &JoiningType) -> ::core::cmp::Ordering {
::core::cmp::Ord::cmp(&self.0, &other.0)
}
}Ord, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::cmp::PartialOrd for JoiningType {
#[inline]
fn partial_cmp(&self, other: &JoiningType)
-> ::core::option::Option<::core::cmp::Ordering> {
::core::option::Option::Some(::core::cmp::Ord::cmp(self, other))
}
}PartialOrd, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::hash::Hash for JoiningType {
#[inline]
fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) {
::core::hash::Hash::hash(&self.0, state)
}
}Hash)]
1367#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
1368#[allow(clippy::exhaustive_structs)] #[repr(transparent)]
1370pub struct JoiningType(pub(crate) u8);
1371
1372impl JoiningType {
1373 #[deprecated(
1375 since = "2.3.0",
1376 note = "please comment on https://github.com/unicode-org/icu4x/issues/6067 if you need this"
1377 )]
1378 pub const fn to_icu4c_value(self) -> u8 {
1379 self.0
1380 }
1381 #[deprecated(
1383 since = "2.3.0",
1384 note = "please comment on https://github.com/unicode-org/icu4x/issues/6067 if you need this"
1385 )]
1386 pub const fn from_icu4c_value(value: u8) -> Self {
1387 Self(value)
1388 }
1389}
1390
1391impl Default for JoiningType {
1392 fn default() -> Self {
1393 Self::NonJoining
1394 }
1395}
1396
1397impl crate::private::Sealed for JoiningType {}
impl EnumeratedProperty for JoiningType {
type DataMarker = crate::provider::PropertyEnumJoiningTypeV1;
const SINGLETON:
&'static crate::provider::PropertyCodePointMap<'static, Self> =
crate::provider::Baked::SINGLETON_PROPERTY_ENUM_JOINING_TYPE_V1;
const NAME: &'static [u8] = "Joining_Type".as_bytes();
const SHORT_NAME: &'static [u8] = "jt".as_bytes();
}
impl zerovec::ule::AsULE for JoiningType {
type ULE = u8;
fn to_unaligned(self) -> Self::ULE { self.0.to_unaligned() }
fn from_unaligned(unaligned: Self::ULE) -> Self {
Self(zerovec::ule::AsULE::from_unaligned(unaligned))
}
}make_enumerated_property! {
1398 name: "Joining_Type";
1399 short_name: "jt";
1400 ident: JoiningType;
1401 data_marker: crate::provider::PropertyEnumJoiningTypeV1;
1402 singleton: SINGLETON_PROPERTY_ENUM_JOINING_TYPE_V1;
1403 ule_ty: u8;
1404}
1405
1406#[derive(#[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::marker::Copy for VerticalOrientation { }Copy, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::clone::Clone for VerticalOrientation {
#[inline]
fn clone(&self) -> VerticalOrientation {
let _: ::core::clone::AssertParamIsClone<u8>;
*self
}
}Clone, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::fmt::Debug for VerticalOrientation {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::debug_tuple_field1_finish(f,
"VerticalOrientation", &&self.0)
}
}Debug, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::cmp::Eq for VerticalOrientation {
#[inline]
#[doc(hidden)]
#[coverage(off)]
fn assert_fields_are_eq(&self) {
let _: ::core::cmp::AssertParamIsEq<u8>;
}
}Eq, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::cmp::PartialEq for VerticalOrientation {
#[inline]
fn eq(&self, other: &VerticalOrientation) -> bool { self.0 == other.0 }
}PartialEq, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::cmp::Ord for VerticalOrientation {
#[inline]
fn cmp(&self, other: &VerticalOrientation) -> ::core::cmp::Ordering {
::core::cmp::Ord::cmp(&self.0, &other.0)
}
}Ord, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::cmp::PartialOrd for VerticalOrientation {
#[inline]
fn partial_cmp(&self, other: &VerticalOrientation)
-> ::core::option::Option<::core::cmp::Ordering> {
::core::option::Option::Some(::core::cmp::Ord::cmp(self, other))
}
}PartialOrd, #[automatically_derived]
#[allow(clippy::exhaustive_structs)]
impl ::core::hash::Hash for VerticalOrientation {
#[inline]
fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) {
::core::hash::Hash::hash(&self.0, state)
}
}Hash)]
1434#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
1435#[allow(clippy::exhaustive_structs)] #[repr(transparent)]
1437pub struct VerticalOrientation(pub(crate) u8);
1438
1439impl VerticalOrientation {
1440 #[deprecated(
1442 since = "2.3.0",
1443 note = "please comment on https://github.com/unicode-org/icu4x/issues/6067 if you need this"
1444 )]
1445 pub const fn to_icu4c_value(self) -> u8 {
1446 self.0
1447 }
1448 #[deprecated(
1450 since = "2.3.0",
1451 note = "please comment on https://github.com/unicode-org/icu4x/issues/6067 if you need this"
1452 )]
1453 pub const fn from_icu4c_value(value: u8) -> Self {
1454 Self(value)
1455 }
1456}
1457
1458impl Default for VerticalOrientation {
1459 fn default() -> Self {
1460 Self::Rotated
1461 }
1462}
1463
1464impl crate::private::Sealed for VerticalOrientation {}
impl EnumeratedProperty for VerticalOrientation {
type DataMarker = crate::provider::PropertyEnumVerticalOrientationV1;
const SINGLETON:
&'static crate::provider::PropertyCodePointMap<'static, Self> =
crate::provider::Baked::SINGLETON_PROPERTY_ENUM_VERTICAL_ORIENTATION_V1;
const NAME: &'static [u8] = "Vertical_Orientation".as_bytes();
const SHORT_NAME: &'static [u8] = "vo".as_bytes();
}
impl zerovec::ule::AsULE for VerticalOrientation {
type ULE = u8;
fn to_unaligned(self) -> Self::ULE { self.0.to_unaligned() }
fn from_unaligned(unaligned: Self::ULE) -> Self {
Self(zerovec::ule::AsULE::from_unaligned(unaligned))
}
}make_enumerated_property! {
1465 name: "Vertical_Orientation";
1466 short_name: "vo";
1467 ident: VerticalOrientation;
1468 data_marker: crate::provider::PropertyEnumVerticalOrientationV1;
1469 singleton: SINGLETON_PROPERTY_ENUM_VERTICAL_ORIENTATION_V1;
1470 ule_ty: u8;
1471}
1472
1473pub use crate::code_point_set::BinaryProperty;
1474
1475macro_rules! make_binary_property {
1476 (
1477 name: $name:literal;
1478 short_name: $short_name:literal;
1479 ident: $ident:ident;
1480 data_marker: $data_marker:ty;
1481 singleton: $singleton:ident;
1482 $(#[$doc:meta])+
1483 ) => {
1484 $(#[$doc])+
1485 #[derive(Debug)]
1486 #[non_exhaustive]
1487 pub struct $ident;
1488
1489 #[allow(deprecated)]
1490 impl crate::private::Sealed for $ident {}
1491
1492 #[allow(deprecated)]
1493 impl BinaryProperty for $ident {
1494 type DataMarker = $data_marker;
1495 #[cfg(feature = "compiled_data")]
1496 const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
1497 &crate::provider::Baked::$singleton;
1498 const NAME: &'static [u8] = $name.as_bytes();
1499 const SHORT_NAME: &'static [u8] = $short_name.as_bytes();
1500 }
1501 };
1502}
1503
1504#[doc =
r" ASCII characters commonly used for the representation of hexadecimal numbers."]
#[doc = r""]
#[doc = r" # Example"]
#[doc = r""]
#[doc = r" ```"]
#[doc = r" use icu::properties::CodePointSetData;"]
#[doc = r" use icu::properties::props::AsciiHexDigit;"]
#[doc = r""]
#[doc = r" let ascii_hex_digit = CodePointSetData::new::<AsciiHexDigit>();"]
#[doc = r""]
#[doc = r" assert!(ascii_hex_digit.contains('3'));"]
#[doc =
r" assert!(!ascii_hex_digit.contains('੩')); // U+0A69 GURMUKHI DIGIT THREE"]
#[doc = r" assert!(ascii_hex_digit.contains('A'));"]
#[doc =
r" assert!(!ascii_hex_digit.contains('Ä')); // U+00C4 LATIN CAPITAL LETTER A WITH DIAERESIS"]
#[doc = r" ```"]
#[non_exhaustive]
pub struct AsciiHexDigit;
#[automatically_derived]
impl ::core::fmt::Debug for AsciiHexDigit {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "AsciiHexDigit")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for AsciiHexDigit { }
#[allow(deprecated)]
impl BinaryProperty for AsciiHexDigit {
type DataMarker = crate::provider::PropertyBinaryAsciiHexDigitV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_ASCII_HEX_DIGIT_V1;
const NAME: &'static [u8] = "ASCII_Hex_Digit".as_bytes();
const SHORT_NAME: &'static [u8] = "AHex".as_bytes();
}make_binary_property! {
1505 name: "ASCII_Hex_Digit";
1506 short_name: "AHex";
1507 ident: AsciiHexDigit;
1508 data_marker: crate::provider::PropertyBinaryAsciiHexDigitV1;
1509 singleton: SINGLETON_PROPERTY_BINARY_ASCII_HEX_DIGIT_V1;
1510 }
1526
1527#[doc = r" Characters with the `Alphabetic` or `Decimal_Number` property."]
#[doc = r""]
#[doc = r" This is defined for POSIX compatibility."]
#[non_exhaustive]
pub struct Alnum;
#[automatically_derived]
impl ::core::fmt::Debug for Alnum {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "Alnum")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for Alnum { }
#[allow(deprecated)]
impl BinaryProperty for Alnum {
type DataMarker = crate::provider::PropertyBinaryAlnumV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_ALNUM_V1;
const NAME: &'static [u8] = "alnum".as_bytes();
const SHORT_NAME: &'static [u8] = "alnum".as_bytes();
}make_binary_property! {
1528 name: "alnum";
1529 short_name: "alnum";
1530 ident: Alnum;
1531 data_marker: crate::provider::PropertyBinaryAlnumV1;
1532 singleton: SINGLETON_PROPERTY_BINARY_ALNUM_V1;
1533 }
1537
1538#[doc = r" Alphabetic characters."]
#[doc = r""]
#[doc = r" # Example"]
#[doc = r""]
#[doc = r" ```"]
#[doc = r" use icu::properties::CodePointSetData;"]
#[doc = r" use icu::properties::props::Alphabetic;"]
#[doc = r""]
#[doc = r" let alphabetic = CodePointSetData::new::<Alphabetic>();"]
#[doc = r""]
#[doc = r" assert!(!alphabetic.contains('3'));"]
#[doc =
r" assert!(!alphabetic.contains('੩')); // U+0A69 GURMUKHI DIGIT THREE"]
#[doc = r" assert!(alphabetic.contains('A'));"]
#[doc =
r" assert!(alphabetic.contains('Ä')); // U+00C4 LATIN CAPITAL LETTER A WITH DIAERESIS"]
#[doc = r" ```"]
#[non_exhaustive]
pub struct Alphabetic;
#[automatically_derived]
impl ::core::fmt::Debug for Alphabetic {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "Alphabetic")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for Alphabetic { }
#[allow(deprecated)]
impl BinaryProperty for Alphabetic {
type DataMarker = crate::provider::PropertyBinaryAlphabeticV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_ALPHABETIC_V1;
const NAME: &'static [u8] = "Alphabetic".as_bytes();
const SHORT_NAME: &'static [u8] = "Alpha".as_bytes();
}make_binary_property! {
1539 name: "Alphabetic";
1540 short_name: "Alpha";
1541 ident: Alphabetic;
1542 data_marker: crate::provider::PropertyBinaryAlphabeticV1;
1543 singleton: SINGLETON_PROPERTY_BINARY_ALPHABETIC_V1;
1544 }
1561
1562#[doc =
r" Format control characters which have specific functions in the Unicode Bidirectional"]
#[doc = r" Algorithm."]
#[doc = r""]
#[doc = r" # Example"]
#[doc = r""]
#[doc = r" ```"]
#[doc = r" use icu::properties::CodePointSetData;"]
#[doc = r" use icu::properties::props::BidiControl;"]
#[doc = r""]
#[doc = r" let bidi_control = CodePointSetData::new::<BidiControl>();"]
#[doc = r""]
#[doc =
r" assert!(bidi_control.contains('\u{200F}')); // RIGHT-TO-LEFT MARK"]
#[doc =
r" assert!(!bidi_control.contains('ش')); // U+0634 ARABIC LETTER SHEEN"]
#[doc = r" ```"]
#[non_exhaustive]
pub struct BidiControl;
#[automatically_derived]
impl ::core::fmt::Debug for BidiControl {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "BidiControl")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for BidiControl { }
#[allow(deprecated)]
impl BinaryProperty for BidiControl {
type DataMarker = crate::provider::PropertyBinaryBidiControlV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_BIDI_CONTROL_V1;
const NAME: &'static [u8] = "Bidi_Control".as_bytes();
const SHORT_NAME: &'static [u8] = "Bidi_C".as_bytes();
}make_binary_property! {
1563 name: "Bidi_Control";
1564 short_name: "Bidi_C";
1565 ident: BidiControl;
1566 data_marker: crate::provider::PropertyBinaryBidiControlV1;
1567 singleton: SINGLETON_PROPERTY_BINARY_BIDI_CONTROL_V1;
1568 }
1584
1585#[doc = r" Characters that are mirrored in bidirectional text."]
#[doc = r""]
#[doc = r" # Example"]
#[doc = r""]
#[doc = r" ```"]
#[doc = r" use icu::properties::CodePointSetData;"]
#[doc = r" use icu::properties::props::BidiMirrored;"]
#[doc = r""]
#[doc = r" let bidi_mirrored = CodePointSetData::new::<BidiMirrored>();"]
#[doc = r""]
#[doc = r" assert!(bidi_mirrored.contains('['));"]
#[doc = r" assert!(bidi_mirrored.contains(']'));"]
#[doc =
r" assert!(bidi_mirrored.contains('∑')); // U+2211 N-ARY SUMMATION"]
#[doc =
r" assert!(!bidi_mirrored.contains('ཉ')); // U+0F49 TIBETAN LETTER NYA"]
#[doc = r" ```"]
#[non_exhaustive]
pub struct BidiMirrored;
#[automatically_derived]
impl ::core::fmt::Debug for BidiMirrored {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "BidiMirrored")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for BidiMirrored { }
#[allow(deprecated)]
impl BinaryProperty for BidiMirrored {
type DataMarker = crate::provider::PropertyBinaryBidiMirroredV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_BIDI_MIRRORED_V1;
const NAME: &'static [u8] = "Bidi_Mirrored".as_bytes();
const SHORT_NAME: &'static [u8] = "Bidi_M".as_bytes();
}make_binary_property! {
1586 name: "Bidi_Mirrored";
1587 short_name: "Bidi_M";
1588 ident: BidiMirrored;
1589 data_marker: crate::provider::PropertyBinaryBidiMirroredV1;
1590 singleton: SINGLETON_PROPERTY_BINARY_BIDI_MIRRORED_V1;
1591 }
1608
1609#[doc = r" Horizontal whitespace characters"]
#[non_exhaustive]
pub struct Blank;
#[automatically_derived]
impl ::core::fmt::Debug for Blank {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "Blank")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for Blank { }
#[allow(deprecated)]
impl BinaryProperty for Blank {
type DataMarker = crate::provider::PropertyBinaryBlankV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_BLANK_V1;
const NAME: &'static [u8] = "blank".as_bytes();
const SHORT_NAME: &'static [u8] = "blank".as_bytes();
}make_binary_property! {
1610 name: "blank";
1611 short_name: "blank";
1612 ident: Blank;
1613 data_marker: crate::provider::PropertyBinaryBlankV1;
1614 singleton: SINGLETON_PROPERTY_BINARY_BLANK_V1;
1615 }
1618
1619#[doc = r" Uppercase, lowercase, and titlecase characters."]
#[doc = r""]
#[doc = r" # Example"]
#[doc = r""]
#[doc = r" ```"]
#[doc = r" use icu::properties::CodePointSetData;"]
#[doc = r" use icu::properties::props::Cased;"]
#[doc = r""]
#[doc = r" let cased = CodePointSetData::new::<Cased>();"]
#[doc = r""]
#[doc =
r" assert!(cased.contains('Ꙡ')); // U+A660 CYRILLIC CAPITAL LETTER REVERSED TSE"]
#[doc = r" assert!(!cased.contains('ދ')); // U+078B THAANA LETTER DHAALU"]
#[doc = r" ```"]
#[non_exhaustive]
pub struct Cased;
#[automatically_derived]
impl ::core::fmt::Debug for Cased {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "Cased")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for Cased { }
#[allow(deprecated)]
impl BinaryProperty for Cased {
type DataMarker = crate::provider::PropertyBinaryCasedV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_CASED_V1;
const NAME: &'static [u8] = "Cased".as_bytes();
const SHORT_NAME: &'static [u8] = "Cased".as_bytes();
}make_binary_property! {
1620 name: "Cased";
1621 short_name: "Cased";
1622 ident: Cased;
1623 data_marker: crate::provider::PropertyBinaryCasedV1;
1624 singleton: SINGLETON_PROPERTY_BINARY_CASED_V1;
1625 }
1640
1641#[doc = r" Characters which are ignored for casing purposes."]
#[doc = r""]
#[doc = r" # Example"]
#[doc = r""]
#[doc = r" ```"]
#[doc = r" use icu::properties::CodePointSetData;"]
#[doc = r" use icu::properties::props::CaseIgnorable;"]
#[doc = r""]
#[doc = r" let case_ignorable = CodePointSetData::new::<CaseIgnorable>();"]
#[doc = r""]
#[doc = r" assert!(case_ignorable.contains(':'));"]
#[doc =
r" assert!(!case_ignorable.contains('λ')); // U+03BB GREEK SMALL LETTER LAMBDA"]
#[doc = r" ```"]
#[non_exhaustive]
pub struct CaseIgnorable;
#[automatically_derived]
impl ::core::fmt::Debug for CaseIgnorable {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "CaseIgnorable")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for CaseIgnorable { }
#[allow(deprecated)]
impl BinaryProperty for CaseIgnorable {
type DataMarker = crate::provider::PropertyBinaryCaseIgnorableV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_CASE_IGNORABLE_V1;
const NAME: &'static [u8] = "Case_Ignorable".as_bytes();
const SHORT_NAME: &'static [u8] = "CI".as_bytes();
}make_binary_property! {
1642 name: "Case_Ignorable";
1643 short_name: "CI";
1644 ident: CaseIgnorable;
1645 data_marker: crate::provider::PropertyBinaryCaseIgnorableV1;
1646 singleton: SINGLETON_PROPERTY_BINARY_CASE_IGNORABLE_V1;
1647 }
1662
1663#[doc = r" Characters that are excluded from composition."]
#[doc = r""]
#[doc =
r" See <https://unicode.org/Public/UNIDATA/CompositionExclusions.txt>"]
#[non_exhaustive]
pub struct FullCompositionExclusion;
#[automatically_derived]
impl ::core::fmt::Debug for FullCompositionExclusion {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "FullCompositionExclusion")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for FullCompositionExclusion { }
#[allow(deprecated)]
impl BinaryProperty for FullCompositionExclusion {
type DataMarker =
crate::provider::PropertyBinaryFullCompositionExclusionV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_FULL_COMPOSITION_EXCLUSION_V1;
const NAME: &'static [u8] = "Full_Composition_Exclusion".as_bytes();
const SHORT_NAME: &'static [u8] = "Comp_Ex".as_bytes();
}make_binary_property! {
1664 name: "Full_Composition_Exclusion";
1665 short_name: "Comp_Ex";
1666 ident: FullCompositionExclusion;
1667 data_marker: crate::provider::PropertyBinaryFullCompositionExclusionV1;
1668 singleton: SINGLETON_PROPERTY_BINARY_FULL_COMPOSITION_EXCLUSION_V1;
1669 }
1674
1675#[doc =
r" Characters whose normalized forms are not stable under case folding."]
#[doc = r""]
#[doc = r" # Example"]
#[doc = r""]
#[doc = r" ```"]
#[doc = r" use icu::properties::CodePointSetData;"]
#[doc = r" use icu::properties::props::ChangesWhenCasefolded;"]
#[doc = r""]
#[doc =
r" let changes_when_casefolded = CodePointSetData::new::<ChangesWhenCasefolded>();"]
#[doc = r""]
#[doc =
r" assert!(changes_when_casefolded.contains('ß')); // U+00DF LATIN SMALL LETTER SHARP S"]
#[doc =
r" assert!(!changes_when_casefolded.contains('ᜉ')); // U+1709 TAGALOG LETTER PA"]
#[doc = r" ```"]
#[non_exhaustive]
pub struct ChangesWhenCasefolded;
#[automatically_derived]
impl ::core::fmt::Debug for ChangesWhenCasefolded {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "ChangesWhenCasefolded")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for ChangesWhenCasefolded { }
#[allow(deprecated)]
impl BinaryProperty for ChangesWhenCasefolded {
type DataMarker = crate::provider::PropertyBinaryChangesWhenCasefoldedV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_CHANGES_WHEN_CASEFOLDED_V1;
const NAME: &'static [u8] = "Changes_When_Casefolded".as_bytes();
const SHORT_NAME: &'static [u8] = "CWCF".as_bytes();
}make_binary_property! {
1676 name: "Changes_When_Casefolded";
1677 short_name: "CWCF";
1678 ident: ChangesWhenCasefolded;
1679 data_marker: crate::provider::PropertyBinaryChangesWhenCasefoldedV1;
1680 singleton: SINGLETON_PROPERTY_BINARY_CHANGES_WHEN_CASEFOLDED_V1;
1681 }
1696
1697#[doc = r" Characters which may change when they undergo case mapping."]
#[non_exhaustive]
pub struct ChangesWhenCasemapped;
#[automatically_derived]
impl ::core::fmt::Debug for ChangesWhenCasemapped {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "ChangesWhenCasemapped")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for ChangesWhenCasemapped { }
#[allow(deprecated)]
impl BinaryProperty for ChangesWhenCasemapped {
type DataMarker = crate::provider::PropertyBinaryChangesWhenCasemappedV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_CHANGES_WHEN_CASEMAPPED_V1;
const NAME: &'static [u8] = "Changes_When_Casemapped".as_bytes();
const SHORT_NAME: &'static [u8] = "CWCM".as_bytes();
}make_binary_property! {
1698 name: "Changes_When_Casemapped";
1699 short_name: "CWCM";
1700 ident: ChangesWhenCasemapped;
1701 data_marker: crate::provider::PropertyBinaryChangesWhenCasemappedV1;
1702 singleton: SINGLETON_PROPERTY_BINARY_CHANGES_WHEN_CASEMAPPED_V1;
1703 }
1706
1707#[doc =
r" Characters which are not identical to their `NFKC_Casefold` mapping."]
#[doc = r""]
#[doc = r" # Example"]
#[doc = r""]
#[doc = r" ```"]
#[doc = r" use icu::properties::CodePointSetData;"]
#[doc = r" use icu::properties::props::ChangesWhenNfkcCasefolded;"]
#[doc = r""]
#[doc =
r" let changes_when_nfkc_casefolded = CodePointSetData::new::<ChangesWhenNfkcCasefolded>();"]
#[doc = r""]
#[doc =
r" assert!(changes_when_nfkc_casefolded.contains('🄵')); // U+1F135 SQUARED LATIN CAPITAL LETTER F"]
#[doc = r" assert!(!changes_when_nfkc_casefolded.contains('f'));"]
#[doc = r" ```"]
#[non_exhaustive]
pub struct ChangesWhenNfkcCasefolded;
#[automatically_derived]
impl ::core::fmt::Debug for ChangesWhenNfkcCasefolded {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "ChangesWhenNfkcCasefolded")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for ChangesWhenNfkcCasefolded { }
#[allow(deprecated)]
impl BinaryProperty for ChangesWhenNfkcCasefolded {
type DataMarker =
crate::provider::PropertyBinaryChangesWhenNfkcCasefoldedV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_CHANGES_WHEN_NFKC_CASEFOLDED_V1;
const NAME: &'static [u8] = "Changes_When_NFKC_Casefolded".as_bytes();
const SHORT_NAME: &'static [u8] = "CWKCF".as_bytes();
}make_binary_property! {
1708 name: "Changes_When_NFKC_Casefolded";
1709 short_name: "CWKCF";
1710 ident: ChangesWhenNfkcCasefolded;
1711 data_marker: crate::provider::PropertyBinaryChangesWhenNfkcCasefoldedV1;
1712 singleton: SINGLETON_PROPERTY_BINARY_CHANGES_WHEN_NFKC_CASEFOLDED_V1;
1713 }
1728
1729#[doc =
r" Characters whose normalized forms are not stable under a `toLowercase` mapping."]
#[doc = r""]
#[doc = r" # Example"]
#[doc = r""]
#[doc = r" ```"]
#[doc = r" use icu::properties::CodePointSetData;"]
#[doc = r" use icu::properties::props::ChangesWhenLowercased;"]
#[doc = r""]
#[doc =
r" let changes_when_lowercased = CodePointSetData::new::<ChangesWhenLowercased>();"]
#[doc = r""]
#[doc =
r" assert!(changes_when_lowercased.contains('Ⴔ')); // U+10B4 GEORGIAN CAPITAL LETTER PHAR"]
#[doc =
r" assert!(!changes_when_lowercased.contains('ფ')); // U+10E4 GEORGIAN LETTER PHAR"]
#[doc = r" ```"]
#[non_exhaustive]
pub struct ChangesWhenLowercased;
#[automatically_derived]
impl ::core::fmt::Debug for ChangesWhenLowercased {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "ChangesWhenLowercased")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for ChangesWhenLowercased { }
#[allow(deprecated)]
impl BinaryProperty for ChangesWhenLowercased {
type DataMarker = crate::provider::PropertyBinaryChangesWhenLowercasedV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_CHANGES_WHEN_LOWERCASED_V1;
const NAME: &'static [u8] = "Changes_When_Lowercased".as_bytes();
const SHORT_NAME: &'static [u8] = "CWL".as_bytes();
}make_binary_property! {
1730 name: "Changes_When_Lowercased";
1731 short_name: "CWL";
1732 ident: ChangesWhenLowercased;
1733 data_marker: crate::provider::PropertyBinaryChangesWhenLowercasedV1;
1734 singleton: SINGLETON_PROPERTY_BINARY_CHANGES_WHEN_LOWERCASED_V1;
1735 }
1750
1751#[doc =
r" Characters whose normalized forms are not stable under a `toTitlecase` mapping."]
#[doc = r""]
#[doc = r" # Example"]
#[doc = r""]
#[doc = r" ```"]
#[doc = r" use icu::properties::CodePointSetData;"]
#[doc = r" use icu::properties::props::ChangesWhenTitlecased;"]
#[doc = r""]
#[doc =
r" let changes_when_titlecased = CodePointSetData::new::<ChangesWhenTitlecased>();"]
#[doc = r""]
#[doc =
r" assert!(changes_when_titlecased.contains('æ')); // U+00E6 LATIN SMALL LETTER AE"]
#[doc =
r" assert!(!changes_when_titlecased.contains('Æ')); // U+00E6 LATIN CAPITAL LETTER AE"]
#[doc = r" ```"]
#[non_exhaustive]
pub struct ChangesWhenTitlecased;
#[automatically_derived]
impl ::core::fmt::Debug for ChangesWhenTitlecased {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "ChangesWhenTitlecased")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for ChangesWhenTitlecased { }
#[allow(deprecated)]
impl BinaryProperty for ChangesWhenTitlecased {
type DataMarker = crate::provider::PropertyBinaryChangesWhenTitlecasedV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_CHANGES_WHEN_TITLECASED_V1;
const NAME: &'static [u8] = "Changes_When_Titlecased".as_bytes();
const SHORT_NAME: &'static [u8] = "CWT".as_bytes();
}make_binary_property! {
1752 name: "Changes_When_Titlecased";
1753 short_name: "CWT";
1754 ident: ChangesWhenTitlecased;
1755 data_marker: crate::provider::PropertyBinaryChangesWhenTitlecasedV1;
1756 singleton: SINGLETON_PROPERTY_BINARY_CHANGES_WHEN_TITLECASED_V1;
1757 }
1772
1773#[doc =
r" Characters whose normalized forms are not stable under a `toUppercase` mapping."]
#[doc = r""]
#[doc = r" # Example"]
#[doc = r""]
#[doc = r" ```"]
#[doc = r" use icu::properties::CodePointSetData;"]
#[doc = r" use icu::properties::props::ChangesWhenUppercased;"]
#[doc = r""]
#[doc =
r" let changes_when_uppercased = CodePointSetData::new::<ChangesWhenUppercased>();"]
#[doc = r""]
#[doc =
r" assert!(changes_when_uppercased.contains('ւ')); // U+0582 ARMENIAN SMALL LETTER YIWN"]
#[doc =
r" assert!(!changes_when_uppercased.contains('Ւ')); // U+0552 ARMENIAN CAPITAL LETTER YIWN"]
#[doc = r" ```"]
#[non_exhaustive]
pub struct ChangesWhenUppercased;
#[automatically_derived]
impl ::core::fmt::Debug for ChangesWhenUppercased {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "ChangesWhenUppercased")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for ChangesWhenUppercased { }
#[allow(deprecated)]
impl BinaryProperty for ChangesWhenUppercased {
type DataMarker = crate::provider::PropertyBinaryChangesWhenUppercasedV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_CHANGES_WHEN_UPPERCASED_V1;
const NAME: &'static [u8] = "Changes_When_Uppercased".as_bytes();
const SHORT_NAME: &'static [u8] = "CWU".as_bytes();
}make_binary_property! {
1774 name: "Changes_When_Uppercased";
1775 short_name: "CWU";
1776 ident: ChangesWhenUppercased;
1777 data_marker: crate::provider::PropertyBinaryChangesWhenUppercasedV1;
1778 singleton: SINGLETON_PROPERTY_BINARY_CHANGES_WHEN_UPPERCASED_V1;
1779 }
1794
1795#[doc =
r" Punctuation characters explicitly called out as dashes in the Unicode Standard, plus"]
#[doc = r" their compatibility equivalents."]
#[doc = r""]
#[doc = r" # Example"]
#[doc = r""]
#[doc = r" ```"]
#[doc = r" use icu::properties::CodePointSetData;"]
#[doc = r" use icu::properties::props::Dash;"]
#[doc = r""]
#[doc = r" let dash = CodePointSetData::new::<Dash>();"]
#[doc = r""]
#[doc = r" assert!(dash.contains('⸺')); // U+2E3A TWO-EM DASH"]
#[doc = r" assert!(dash.contains('-')); // U+002D"]
#[doc = r" assert!(!dash.contains('=')); // U+003D"]
#[doc = r" ```"]
#[non_exhaustive]
pub struct Dash;
#[automatically_derived]
impl ::core::fmt::Debug for Dash {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "Dash")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for Dash { }
#[allow(deprecated)]
impl BinaryProperty for Dash {
type DataMarker = crate::provider::PropertyBinaryDashV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_DASH_V1;
const NAME: &'static [u8] = "Dash".as_bytes();
const SHORT_NAME: &'static [u8] = "Dash".as_bytes();
}make_binary_property! {
1796 name: "Dash";
1797 short_name: "Dash";
1798 ident: Dash;
1799 data_marker: crate::provider::PropertyBinaryDashV1;
1800 singleton: SINGLETON_PROPERTY_BINARY_DASH_V1;
1801 }
1818
1819#[doc = r" Deprecated characters."]
#[doc = r""]
#[doc = r" No characters will ever be removed from the standard, but the"]
#[doc = r" usage of deprecated characters is strongly discouraged."]
#[doc = r""]
#[doc = r" # Example"]
#[doc = r""]
#[doc = r" ```"]
#[doc = r" use icu::properties::CodePointSetData;"]
#[doc = r" use icu::properties::props::Deprecated;"]
#[doc = r""]
#[doc = r" let deprecated = CodePointSetData::new::<Deprecated>();"]
#[doc = r""]
#[doc =
r" assert!(deprecated.contains('ឣ')); // U+17A3 KHMER INDEPENDENT VOWEL QAQ"]
#[doc = r" assert!(!deprecated.contains('A'));"]
#[doc = r" ```"]
#[non_exhaustive]
pub struct Deprecated;
#[automatically_derived]
impl ::core::fmt::Debug for Deprecated {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "Deprecated")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for Deprecated { }
#[allow(deprecated)]
impl BinaryProperty for Deprecated {
type DataMarker = crate::provider::PropertyBinaryDeprecatedV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_DEPRECATED_V1;
const NAME: &'static [u8] = "Deprecated".as_bytes();
const SHORT_NAME: &'static [u8] = "Dep".as_bytes();
}make_binary_property! {
1820 name: "Deprecated";
1821 short_name: "Dep";
1822 ident: Deprecated;
1823 data_marker: crate::provider::PropertyBinaryDeprecatedV1;
1824 singleton: SINGLETON_PROPERTY_BINARY_DEPRECATED_V1;
1825 }
1843
1844#[doc = r" For programmatic determination of default ignorable code points."]
#[doc = r""]
#[doc = r" New characters that"]
#[doc =
r" should be ignored in rendering (unless explicitly supported) will be assigned in these"]
#[doc =
r" ranges, permitting programs to correctly handle the default rendering of such"]
#[doc = r" characters when not otherwise supported."]
#[doc = r""]
#[doc = r" # Example"]
#[doc = r""]
#[doc = r" ```"]
#[doc = r" use icu::properties::CodePointSetData;"]
#[doc = r" use icu::properties::props::DefaultIgnorableCodePoint;"]
#[doc = r""]
#[doc =
r" let default_ignorable_code_point = CodePointSetData::new::<DefaultIgnorableCodePoint>();"]
#[doc = r""]
#[doc =
r" assert!(default_ignorable_code_point.contains('\u{180B}')); // MONGOLIAN FREE VARIATION SELECTOR ONE"]
#[doc = r" assert!(!default_ignorable_code_point.contains('E'));"]
#[doc = r" ```"]
#[non_exhaustive]
pub struct DefaultIgnorableCodePoint;
#[automatically_derived]
impl ::core::fmt::Debug for DefaultIgnorableCodePoint {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "DefaultIgnorableCodePoint")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for DefaultIgnorableCodePoint { }
#[allow(deprecated)]
impl BinaryProperty for DefaultIgnorableCodePoint {
type DataMarker =
crate::provider::PropertyBinaryDefaultIgnorableCodePointV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_DEFAULT_IGNORABLE_CODE_POINT_V1;
const NAME: &'static [u8] = "Default_Ignorable_Code_Point".as_bytes();
const SHORT_NAME: &'static [u8] = "DI".as_bytes();
}make_binary_property! {
1845 name: "Default_Ignorable_Code_Point";
1846 short_name: "DI";
1847 ident: DefaultIgnorableCodePoint;
1848 data_marker: crate::provider::PropertyBinaryDefaultIgnorableCodePointV1;
1849 singleton: SINGLETON_PROPERTY_BINARY_DEFAULT_IGNORABLE_CODE_POINT_V1;
1850 }
1870
1871#[doc =
r" Characters that linguistically modify the meaning of another character to which they apply."]
#[doc = r""]
#[doc = r" # Example"]
#[doc = r""]
#[doc = r" ```"]
#[doc = r" use icu::properties::CodePointSetData;"]
#[doc = r" use icu::properties::props::Diacritic;"]
#[doc = r""]
#[doc = r" let diacritic = CodePointSetData::new::<Diacritic>();"]
#[doc = r""]
#[doc =
r" assert!(diacritic.contains('\u{05B3}')); // HEBREW POINT HATAF QAMATS"]
#[doc = r" assert!(!diacritic.contains('א')); // U+05D0 HEBREW LETTER ALEF"]
#[doc = r" ```"]
#[non_exhaustive]
pub struct Diacritic;
#[automatically_derived]
impl ::core::fmt::Debug for Diacritic {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "Diacritic")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for Diacritic { }
#[allow(deprecated)]
impl BinaryProperty for Diacritic {
type DataMarker = crate::provider::PropertyBinaryDiacriticV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_DIACRITIC_V1;
const NAME: &'static [u8] = "Diacritic".as_bytes();
const SHORT_NAME: &'static [u8] = "Dia".as_bytes();
}make_binary_property! {
1872 name: "Diacritic";
1873 short_name: "Dia";
1874 ident: Diacritic;
1875 data_marker: crate::provider::PropertyBinaryDiacriticV1;
1876 singleton: SINGLETON_PROPERTY_BINARY_DIACRITIC_V1;
1877 }
1892
1893#[doc = r" Characters that can serve as a base for emoji modifiers."]
#[doc = r""]
#[doc = r" # Example"]
#[doc = r""]
#[doc = r" ```"]
#[doc = r" use icu::properties::CodePointSetData;"]
#[doc = r" use icu::properties::props::EmojiModifierBase;"]
#[doc = r""]
#[doc =
r" let emoji_modifier_base = CodePointSetData::new::<EmojiModifierBase>();"]
#[doc = r""]
#[doc =
r" assert!(emoji_modifier_base.contains('✊')); // U+270A RAISED FIST"]
#[doc =
r" assert!(!emoji_modifier_base.contains('⛰')); // U+26F0 MOUNTAIN"]
#[doc = r" ```"]
#[non_exhaustive]
pub struct EmojiModifierBase;
#[automatically_derived]
impl ::core::fmt::Debug for EmojiModifierBase {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "EmojiModifierBase")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for EmojiModifierBase { }
#[allow(deprecated)]
impl BinaryProperty for EmojiModifierBase {
type DataMarker = crate::provider::PropertyBinaryEmojiModifierBaseV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_EMOJI_MODIFIER_BASE_V1;
const NAME: &'static [u8] = "Emoji_Modifier_Base".as_bytes();
const SHORT_NAME: &'static [u8] = "EBase".as_bytes();
}make_binary_property! {
1894 name: "Emoji_Modifier_Base";
1895 short_name: "EBase";
1896 ident: EmojiModifierBase;
1897 data_marker: crate::provider::PropertyBinaryEmojiModifierBaseV1;
1898 singleton: SINGLETON_PROPERTY_BINARY_EMOJI_MODIFIER_BASE_V1;
1899 }
1914
1915#[doc =
r" Characters used in emoji sequences that normally do not appear on emoji keyboards as"]
#[doc = r" separate choices, such as base characters for emoji keycaps."]
#[doc = r""]
#[doc = r" # Example"]
#[doc = r""]
#[doc = r" ```"]
#[doc = r" use icu::properties::CodePointSetData;"]
#[doc = r" use icu::properties::props::EmojiComponent;"]
#[doc = r""]
#[doc = r" let emoji_component = CodePointSetData::new::<EmojiComponent>();"]
#[doc = r""]
#[doc =
r" assert!(emoji_component.contains('🇹')); // U+1F1F9 REGIONAL INDICATOR SYMBOL LETTER T"]
#[doc =
r" assert!(emoji_component.contains('\u{20E3}')); // COMBINING ENCLOSING KEYCAP"]
#[doc = r" assert!(emoji_component.contains('7'));"]
#[doc = r" assert!(!emoji_component.contains('T'));"]
#[doc = r" ```"]
#[non_exhaustive]
pub struct EmojiComponent;
#[automatically_derived]
impl ::core::fmt::Debug for EmojiComponent {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "EmojiComponent")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for EmojiComponent { }
#[allow(deprecated)]
impl BinaryProperty for EmojiComponent {
type DataMarker = crate::provider::PropertyBinaryEmojiComponentV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_EMOJI_COMPONENT_V1;
const NAME: &'static [u8] = "Emoji_Component".as_bytes();
const SHORT_NAME: &'static [u8] = "EComp".as_bytes();
}make_binary_property! {
1916 name: "Emoji_Component";
1917 short_name: "EComp";
1918 ident: EmojiComponent;
1919 data_marker: crate::provider::PropertyBinaryEmojiComponentV1;
1920 singleton: SINGLETON_PROPERTY_BINARY_EMOJI_COMPONENT_V1;
1921 }
1939
1940#[doc = r" Characters that are emoji modifiers."]
#[doc = r""]
#[doc = r" # Example"]
#[doc = r""]
#[doc = r" ```"]
#[doc = r" use icu::properties::CodePointSetData;"]
#[doc = r" use icu::properties::props::EmojiModifier;"]
#[doc = r""]
#[doc = r" let emoji_modifier = CodePointSetData::new::<EmojiModifier>();"]
#[doc = r""]
#[doc =
r" assert!(emoji_modifier.contains('\u{1F3FD}')); // EMOJI MODIFIER FITZPATRICK TYPE-4"]
#[doc =
r" assert!(!emoji_modifier.contains('\u{200C}')); // ZERO WIDTH NON-JOINER"]
#[doc = r" ```"]
#[non_exhaustive]
pub struct EmojiModifier;
#[automatically_derived]
impl ::core::fmt::Debug for EmojiModifier {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "EmojiModifier")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for EmojiModifier { }
#[allow(deprecated)]
impl BinaryProperty for EmojiModifier {
type DataMarker = crate::provider::PropertyBinaryEmojiModifierV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_EMOJI_MODIFIER_V1;
const NAME: &'static [u8] = "Emoji_Modifier".as_bytes();
const SHORT_NAME: &'static [u8] = "EMod".as_bytes();
}make_binary_property! {
1941 name: "Emoji_Modifier";
1942 short_name: "EMod";
1943 ident: EmojiModifier;
1944 data_marker: crate::provider::PropertyBinaryEmojiModifierV1;
1945 singleton: SINGLETON_PROPERTY_BINARY_EMOJI_MODIFIER_V1;
1946 }
1961
1962#[doc = r" Characters that are emoji."]
#[doc = r""]
#[doc = r" # Example"]
#[doc = r""]
#[doc = r" ```"]
#[doc = r" use icu::properties::CodePointSetData;"]
#[doc = r" use icu::properties::props::Emoji;"]
#[doc = r""]
#[doc = r" let emoji = CodePointSetData::new::<Emoji>();"]
#[doc = r""]
#[doc = r" assert!(emoji.contains('🔥')); // U+1F525 FIRE"]
#[doc = r" assert!(!emoji.contains('V'));"]
#[doc = r" ```"]
#[non_exhaustive]
pub struct Emoji;
#[automatically_derived]
impl ::core::fmt::Debug for Emoji {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "Emoji")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for Emoji { }
#[allow(deprecated)]
impl BinaryProperty for Emoji {
type DataMarker = crate::provider::PropertyBinaryEmojiV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_EMOJI_V1;
const NAME: &'static [u8] = "Emoji".as_bytes();
const SHORT_NAME: &'static [u8] = "Emoji".as_bytes();
}make_binary_property! {
1963 name: "Emoji";
1964 short_name: "Emoji";
1965 ident: Emoji;
1966 data_marker: crate::provider::PropertyBinaryEmojiV1;
1967 singleton: SINGLETON_PROPERTY_BINARY_EMOJI_V1;
1968 }
1983
1984#[doc = r" Characters that have emoji presentation by default."]
#[doc = r""]
#[doc = r" # Example"]
#[doc = r""]
#[doc = r" ```"]
#[doc = r" use icu::properties::CodePointSetData;"]
#[doc = r" use icu::properties::props::EmojiPresentation;"]
#[doc = r""]
#[doc =
r" let emoji_presentation = CodePointSetData::new::<EmojiPresentation>();"]
#[doc = r""]
#[doc = r" assert!(emoji_presentation.contains('🦬')); // U+1F9AC BISON"]
#[doc =
r" assert!(!emoji_presentation.contains('♻')); // U+267B BLACK UNIVERSAL RECYCLING SYMBOL"]
#[doc = r" ```"]
#[non_exhaustive]
pub struct EmojiPresentation;
#[automatically_derived]
impl ::core::fmt::Debug for EmojiPresentation {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "EmojiPresentation")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for EmojiPresentation { }
#[allow(deprecated)]
impl BinaryProperty for EmojiPresentation {
type DataMarker = crate::provider::PropertyBinaryEmojiPresentationV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_EMOJI_PRESENTATION_V1;
const NAME: &'static [u8] = "Emoji_Presentation".as_bytes();
const SHORT_NAME: &'static [u8] = "EPres".as_bytes();
}make_binary_property! {
1985 name: "Emoji_Presentation";
1986 short_name: "EPres";
1987 ident: EmojiPresentation;
1988 data_marker: crate::provider::PropertyBinaryEmojiPresentationV1;
1989 singleton: SINGLETON_PROPERTY_BINARY_EMOJI_PRESENTATION_V1;
1990 }
2005
2006#[doc =
r" Characters whose principal function is to extend the value of a preceding alphabetic"]
#[doc = r" character or to extend the shape of adjacent characters."]
#[doc = r""]
#[doc = r" # Example"]
#[doc = r""]
#[doc = r" ```"]
#[doc = r" use icu::properties::CodePointSetData;"]
#[doc = r" use icu::properties::props::Extender;"]
#[doc = r""]
#[doc = r" let extender = CodePointSetData::new::<Extender>();"]
#[doc = r""]
#[doc =
r" assert!(extender.contains('ヾ')); // U+30FE KATAKANA VOICED ITERATION MARK"]
#[doc =
r" assert!(extender.contains('ー')); // U+30FC KATAKANA-HIRAGANA PROLONGED SOUND MARK"]
#[doc =
r" assert!(!extender.contains('・')); // U+30FB KATAKANA MIDDLE DOT"]
#[doc = r" ```"]
#[non_exhaustive]
pub struct Extender;
#[automatically_derived]
impl ::core::fmt::Debug for Extender {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "Extender")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for Extender { }
#[allow(deprecated)]
impl BinaryProperty for Extender {
type DataMarker = crate::provider::PropertyBinaryExtenderV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_EXTENDER_V1;
const NAME: &'static [u8] = "Extender".as_bytes();
const SHORT_NAME: &'static [u8] = "Ext".as_bytes();
}make_binary_property! {
2007 name: "Extender";
2008 short_name: "Ext";
2009 ident: Extender;
2010 data_marker: crate::provider::PropertyBinaryExtenderV1;
2011 singleton: SINGLETON_PROPERTY_BINARY_EXTENDER_V1;
2012 }
2029
2030#[doc =
r" Pictographic symbols, as well as reserved ranges in blocks largely associated with"]
#[doc = r" emoji characters"]
#[doc = r""]
#[doc = r" # Example"]
#[doc = r""]
#[doc = r" ```"]
#[doc = r" use icu::properties::CodePointSetData;"]
#[doc = r" use icu::properties::props::ExtendedPictographic;"]
#[doc = r""]
#[doc =
r" let extended_pictographic = CodePointSetData::new::<ExtendedPictographic>();"]
#[doc = r""]
#[doc =
r" assert!(extended_pictographic.contains('🥳')); // U+1F973 FACE WITH PARTY HORN AND PARTY HAT"]
#[doc =
r" assert!(!extended_pictographic.contains('🇪')); // U+1F1EA REGIONAL INDICATOR SYMBOL LETTER E"]
#[doc = r" ```"]
#[non_exhaustive]
pub struct ExtendedPictographic;
#[automatically_derived]
impl ::core::fmt::Debug for ExtendedPictographic {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "ExtendedPictographic")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for ExtendedPictographic { }
#[allow(deprecated)]
impl BinaryProperty for ExtendedPictographic {
type DataMarker = crate::provider::PropertyBinaryExtendedPictographicV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_EXTENDED_PICTOGRAPHIC_V1;
const NAME: &'static [u8] = "Extended_Pictographic".as_bytes();
const SHORT_NAME: &'static [u8] = "ExtPict".as_bytes();
}make_binary_property! {
2031 name: "Extended_Pictographic";
2032 short_name: "ExtPict";
2033 ident: ExtendedPictographic;
2034 data_marker: crate::provider::PropertyBinaryExtendedPictographicV1;
2035 singleton: SINGLETON_PROPERTY_BINARY_EXTENDED_PICTOGRAPHIC_V1;
2036 }
2052
2053#[doc = r" Invisible characters."]
#[doc = r""]
#[doc = r" This is defined for POSIX compatibility."]
#[non_exhaustive]
pub struct Graph;
#[automatically_derived]
impl ::core::fmt::Debug for Graph {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "Graph")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for Graph { }
#[allow(deprecated)]
impl BinaryProperty for Graph {
type DataMarker = crate::provider::PropertyBinaryGraphV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_GRAPH_V1;
const NAME: &'static [u8] = "graph".as_bytes();
const SHORT_NAME: &'static [u8] = "graph".as_bytes();
}make_binary_property! {
2054 name: "graph";
2055 short_name: "graph";
2056 ident: Graph;
2057 data_marker: crate::provider::PropertyBinaryGraphV1;
2058 singleton: SINGLETON_PROPERTY_BINARY_GRAPH_V1;
2059 }
2064
2065#[doc =
r" Property used together with the definition of Standard Korean Syllable Block to define"]
#[doc = r#" "Grapheme base"."#]
#[doc = r""]
#[doc = r" See D58 in Chapter 3, Conformance in the Unicode Standard."]
#[doc = r""]
#[doc = r" # Example"]
#[doc = r""]
#[doc = r" ```"]
#[doc = r" use icu::properties::CodePointSetData;"]
#[doc = r" use icu::properties::props::GraphemeBase;"]
#[doc = r""]
#[doc = r" let grapheme_base = CodePointSetData::new::<GraphemeBase>();"]
#[doc = r""]
#[doc =
r" assert!(grapheme_base.contains('ക')); // U+0D15 MALAYALAM LETTER KA"]
#[doc =
r" assert!(grapheme_base.contains('\u{0D3F}')); // U+0D3F MALAYALAM VOWEL SIGN I"]
#[doc =
r" assert!(!grapheme_base.contains('\u{0D3E}')); // U+0D3E MALAYALAM VOWEL SIGN AA"]
#[doc = r" ```"]
#[non_exhaustive]
pub struct GraphemeBase;
#[automatically_derived]
impl ::core::fmt::Debug for GraphemeBase {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "GraphemeBase")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for GraphemeBase { }
#[allow(deprecated)]
impl BinaryProperty for GraphemeBase {
type DataMarker = crate::provider::PropertyBinaryGraphemeBaseV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_GRAPHEME_BASE_V1;
const NAME: &'static [u8] = "Grapheme_Base".as_bytes();
const SHORT_NAME: &'static [u8] = "Gr_Base".as_bytes();
}make_binary_property! {
2066 name: "Grapheme_Base";
2067 short_name: "Gr_Base";
2068 ident: GraphemeBase;
2069 data_marker: crate::provider::PropertyBinaryGraphemeBaseV1;
2070 singleton: SINGLETON_PROPERTY_BINARY_GRAPHEME_BASE_V1;
2071 }
2090
2091#[doc = r#" Property used to define "Grapheme extender"."#]
#[doc = r""]
#[doc = r" See D59 in Chapter 3, Conformance in the"]
#[doc = r" Unicode Standard."]
#[doc = r""]
#[doc = r" # Example"]
#[doc = r""]
#[doc = r" ```"]
#[doc = r" use icu::properties::CodePointSetData;"]
#[doc = r" use icu::properties::props::GraphemeExtend;"]
#[doc = r""]
#[doc = r" let grapheme_extend = CodePointSetData::new::<GraphemeExtend>();"]
#[doc = r""]
#[doc =
r" assert!(!grapheme_extend.contains('ക')); // U+0D15 MALAYALAM LETTER KA"]
#[doc =
r" assert!(!grapheme_extend.contains('\u{0D3F}')); // U+0D3F MALAYALAM VOWEL SIGN I"]
#[doc =
r" assert!(grapheme_extend.contains('\u{0D3E}')); // U+0D3E MALAYALAM VOWEL SIGN AA"]
#[doc = r" ```"]
#[non_exhaustive]
pub struct GraphemeExtend;
#[automatically_derived]
impl ::core::fmt::Debug for GraphemeExtend {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "GraphemeExtend")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for GraphemeExtend { }
#[allow(deprecated)]
impl BinaryProperty for GraphemeExtend {
type DataMarker = crate::provider::PropertyBinaryGraphemeExtendV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_GRAPHEME_EXTEND_V1;
const NAME: &'static [u8] = "Grapheme_Extend".as_bytes();
const SHORT_NAME: &'static [u8] = "Gr_Ext".as_bytes();
}make_binary_property! {
2092 name: "Grapheme_Extend";
2093 short_name: "Gr_Ext";
2094 ident: GraphemeExtend;
2095 data_marker: crate::provider::PropertyBinaryGraphemeExtendV1;
2096 singleton: SINGLETON_PROPERTY_BINARY_GRAPHEME_EXTEND_V1;
2097 }
2116
2117#[doc = r" Deprecated property."]
#[doc = r""]
#[doc = r" Formerly proposed for programmatic determination of grapheme"]
#[doc = r" cluster boundaries."]
#[non_exhaustive]
pub struct GraphemeLink;
#[automatically_derived]
impl ::core::fmt::Debug for GraphemeLink {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "GraphemeLink")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for GraphemeLink { }
#[allow(deprecated)]
impl BinaryProperty for GraphemeLink {
type DataMarker = crate::provider::PropertyBinaryGraphemeLinkV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_GRAPHEME_LINK_V1;
const NAME: &'static [u8] = "Grapheme_Link".as_bytes();
const SHORT_NAME: &'static [u8] = "Gr_Link".as_bytes();
}make_binary_property! {
2118 name: "Grapheme_Link";
2119 short_name: "Gr_Link";
2120 ident: GraphemeLink;
2121 data_marker: crate::provider::PropertyBinaryGraphemeLinkV1;
2122 singleton: SINGLETON_PROPERTY_BINARY_GRAPHEME_LINK_V1;
2123 }
2128
2129#[doc =
r" Characters commonly used for the representation of hexadecimal numbers, plus their"]
#[doc = r" compatibility equivalents."]
#[doc = r""]
#[doc = r" # Example"]
#[doc = r""]
#[doc = r" ```"]
#[doc = r" use icu::properties::CodePointSetData;"]
#[doc = r" use icu::properties::props::HexDigit;"]
#[doc = r""]
#[doc = r" let hex_digit = CodePointSetData::new::<HexDigit>();"]
#[doc = r""]
#[doc = r" assert!(hex_digit.contains('0'));"]
#[doc =
r" assert!(!hex_digit.contains('੩')); // U+0A69 GURMUKHI DIGIT THREE"]
#[doc = r" assert!(hex_digit.contains('f'));"]
#[doc =
r" assert!(hex_digit.contains('f')); // U+FF46 FULLWIDTH LATIN SMALL LETTER F"]
#[doc =
r" assert!(hex_digit.contains('F')); // U+FF26 FULLWIDTH LATIN CAPITAL LETTER F"]
#[doc =
r" assert!(!hex_digit.contains('Ä')); // U+00C4 LATIN CAPITAL LETTER A WITH DIAERESIS"]
#[doc = r" ```"]
#[non_exhaustive]
pub struct HexDigit;
#[automatically_derived]
impl ::core::fmt::Debug for HexDigit {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "HexDigit")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for HexDigit { }
#[allow(deprecated)]
impl BinaryProperty for HexDigit {
type DataMarker = crate::provider::PropertyBinaryHexDigitV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_HEX_DIGIT_V1;
const NAME: &'static [u8] = "Hex_Digit".as_bytes();
const SHORT_NAME: &'static [u8] = "Hex".as_bytes();
}make_binary_property! {
2130 name: "Hex_Digit";
2131 short_name: "Hex";
2132 ident: HexDigit;
2133 data_marker: crate::provider::PropertyBinaryHexDigitV1;
2134 singleton: SINGLETON_PROPERTY_BINARY_HEX_DIGIT_V1;
2135 }
2154
2155#[doc = r" Deprecated property."]
#[doc = r""]
#[doc = r" Dashes which are used to mark connections between pieces of"]
#[doc = r" words, plus the Katakana middle dot."]
#[non_exhaustive]
pub struct Hyphen;
#[automatically_derived]
impl ::core::fmt::Debug for Hyphen {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "Hyphen")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for Hyphen { }
#[allow(deprecated)]
impl BinaryProperty for Hyphen {
type DataMarker = crate::provider::PropertyBinaryHyphenV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_HYPHEN_V1;
const NAME: &'static [u8] = "Hyphen".as_bytes();
const SHORT_NAME: &'static [u8] = "Hyphen".as_bytes();
}make_binary_property! {
2156 name: "Hyphen";
2157 short_name: "Hyphen";
2158 ident: Hyphen;
2159 data_marker: crate::provider::PropertyBinaryHyphenV1;
2160 singleton: SINGLETON_PROPERTY_BINARY_HYPHEN_V1;
2161 }
2166
2167#[doc = r" `ID_Compat_Math_Continue` Property"]
#[non_exhaustive]
pub struct IdCompatMathContinue;
#[automatically_derived]
impl ::core::fmt::Debug for IdCompatMathContinue {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "IdCompatMathContinue")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for IdCompatMathContinue { }
#[allow(deprecated)]
impl BinaryProperty for IdCompatMathContinue {
type DataMarker = crate::provider::PropertyBinaryIdCompatMathContinueV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_ID_COMPAT_MATH_CONTINUE_V1;
const NAME: &'static [u8] = "ID_Compat_Math_Continue".as_bytes();
const SHORT_NAME: &'static [u8] = "ID_Compat_Math_Continue".as_bytes();
}make_binary_property! {
2168 name: "ID_Compat_Math_Continue";
2169 short_name: "ID_Compat_Math_Continue";
2170 ident: IdCompatMathContinue;
2171 data_marker: crate::provider::PropertyBinaryIdCompatMathContinueV1;
2172 singleton: SINGLETON_PROPERTY_BINARY_ID_COMPAT_MATH_CONTINUE_V1;
2173 }
2175
2176#[doc = r" `ID_Compat_Math_Start` Property"]
#[non_exhaustive]
pub struct IdCompatMathStart;
#[automatically_derived]
impl ::core::fmt::Debug for IdCompatMathStart {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "IdCompatMathStart")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for IdCompatMathStart { }
#[allow(deprecated)]
impl BinaryProperty for IdCompatMathStart {
type DataMarker = crate::provider::PropertyBinaryIdCompatMathStartV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_ID_COMPAT_MATH_START_V1;
const NAME: &'static [u8] = "ID_Compat_Math_Start".as_bytes();
const SHORT_NAME: &'static [u8] = "ID_Compat_Math_Start".as_bytes();
}make_binary_property! {
2177 name: "ID_Compat_Math_Start";
2178 short_name: "ID_Compat_Math_Start";
2179 ident: IdCompatMathStart;
2180 data_marker: crate::provider::PropertyBinaryIdCompatMathStartV1;
2181 singleton: SINGLETON_PROPERTY_BINARY_ID_COMPAT_MATH_START_V1;
2182 }
2184
2185#[doc =
r" Characters that can come after the first character in an identifier."]
#[doc = r""]
#[doc = r" If using NFKC to"]
#[doc =
r" fold differences between characters, use [`XidContinue`] instead. See"]
#[doc =
r" [`Unicode Standard Annex #31`](https://www.unicode.org/reports/tr31/tr31-35.html) for"]
#[doc = r" more details."]
#[doc = r""]
#[doc = r" # Example"]
#[doc = r""]
#[doc = r" ```"]
#[doc = r" use icu::properties::CodePointSetData;"]
#[doc = r" use icu::properties::props::IdContinue;"]
#[doc = r""]
#[doc = r" let id_continue = CodePointSetData::new::<IdContinue>();"]
#[doc = r""]
#[doc = r" assert!(id_continue.contains('x'));"]
#[doc = r" assert!(id_continue.contains('1'));"]
#[doc = r" assert!(id_continue.contains('_'));"]
#[doc = r" assert!(id_continue.contains('ߝ')); // U+07DD NKO LETTER FA"]
#[doc =
r" assert!(!id_continue.contains('ⓧ')); // U+24E7 CIRCLED LATIN SMALL LETTER X"]
#[doc =
r" assert!(id_continue.contains('\u{FC5E}')); // ARABIC LIGATURE SHADDA WITH DAMMATAN ISOLATED FORM"]
#[doc = r" ```"]
#[non_exhaustive]
pub struct IdContinue;
#[automatically_derived]
impl ::core::fmt::Debug for IdContinue {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "IdContinue")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for IdContinue { }
#[allow(deprecated)]
impl BinaryProperty for IdContinue {
type DataMarker = crate::provider::PropertyBinaryIdContinueV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_ID_CONTINUE_V1;
const NAME: &'static [u8] = "ID_Continue".as_bytes();
const SHORT_NAME: &'static [u8] = "IDC".as_bytes();
}make_binary_property! {
2186 name: "ID_Continue";
2187 short_name: "IDC";
2188 ident: IdContinue;
2189 data_marker: crate::provider::PropertyBinaryIdContinueV1;
2190 singleton: SINGLETON_PROPERTY_BINARY_ID_CONTINUE_V1;
2191 }
2214
2215#[doc =
r" Characters considered to be CJKV (Chinese, Japanese, Korean, and Vietnamese)"]
#[doc = r" ideographs, or related siniform ideographs"]
#[doc = r""]
#[doc = r" # Example"]
#[doc = r""]
#[doc = r" ```"]
#[doc = r" use icu::properties::CodePointSetData;"]
#[doc = r" use icu::properties::props::Ideographic;"]
#[doc = r""]
#[doc = r" let ideographic = CodePointSetData::new::<Ideographic>();"]
#[doc = r""]
#[doc =
r" assert!(ideographic.contains('川')); // U+5DDD CJK UNIFIED IDEOGRAPH-5DDD"]
#[doc =
r" assert!(!ideographic.contains('밥')); // U+BC25 HANGUL SYLLABLE BAB"]
#[doc = r" ```"]
#[non_exhaustive]
pub struct Ideographic;
#[automatically_derived]
impl ::core::fmt::Debug for Ideographic {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "Ideographic")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for Ideographic { }
#[allow(deprecated)]
impl BinaryProperty for Ideographic {
type DataMarker = crate::provider::PropertyBinaryIdeographicV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_IDEOGRAPHIC_V1;
const NAME: &'static [u8] = "Ideographic".as_bytes();
const SHORT_NAME: &'static [u8] = "Ideo".as_bytes();
}make_binary_property! {
2216 name: "Ideographic";
2217 short_name: "Ideo";
2218 ident: Ideographic;
2219 data_marker: crate::provider::PropertyBinaryIdeographicV1;
2220 singleton: SINGLETON_PROPERTY_BINARY_IDEOGRAPHIC_V1;
2221 }
2236
2237#[doc = r" Characters that can begin an identifier."]
#[doc = r""]
#[doc = r" If using NFKC to fold differences between"]
#[doc =
r" characters, use [`XidStart`] instead. See [`Unicode Standard Annex"]
#[doc =
r" #31`](https://www.unicode.org/reports/tr31/tr31-35.html) for more details."]
#[doc = r""]
#[doc = r" # Example"]
#[doc = r""]
#[doc = r" ```"]
#[doc = r" use icu::properties::CodePointSetData;"]
#[doc = r" use icu::properties::props::IdStart;"]
#[doc = r""]
#[doc = r" let id_start = CodePointSetData::new::<IdStart>();"]
#[doc = r""]
#[doc = r" assert!(id_start.contains('x'));"]
#[doc = r" assert!(!id_start.contains('1'));"]
#[doc = r" assert!(!id_start.contains('_'));"]
#[doc = r" assert!(id_start.contains('ߝ')); // U+07DD NKO LETTER FA"]
#[doc =
r" assert!(!id_start.contains('ⓧ')); // U+24E7 CIRCLED LATIN SMALL LETTER X"]
#[doc =
r" assert!(id_start.contains('\u{FC5E}')); // ARABIC LIGATURE SHADDA WITH DAMMATAN ISOLATED FORM"]
#[doc = r" ```"]
#[non_exhaustive]
pub struct IdStart;
#[automatically_derived]
impl ::core::fmt::Debug for IdStart {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "IdStart")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for IdStart { }
#[allow(deprecated)]
impl BinaryProperty for IdStart {
type DataMarker = crate::provider::PropertyBinaryIdStartV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_ID_START_V1;
const NAME: &'static [u8] = "ID_Start".as_bytes();
const SHORT_NAME: &'static [u8] = "IDS".as_bytes();
}make_binary_property! {
2238 name: "ID_Start";
2239 short_name: "IDS";
2240 ident: IdStart;
2241 data_marker: crate::provider::PropertyBinaryIdStartV1;
2242 singleton: SINGLETON_PROPERTY_BINARY_ID_START_V1;
2243 }
2265
2266#[doc = r" Characters used in Ideographic Description Sequences."]
#[doc = r""]
#[doc = r" # Example"]
#[doc = r""]
#[doc = r" ```"]
#[doc = r" use icu::properties::CodePointSetData;"]
#[doc = r" use icu::properties::props::IdsBinaryOperator;"]
#[doc = r""]
#[doc =
r" let ids_binary_operator = CodePointSetData::new::<IdsBinaryOperator>();"]
#[doc = r""]
#[doc =
r" assert!(ids_binary_operator.contains('\u{2FF5}')); // IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM ABOVE"]
#[doc =
r" assert!(!ids_binary_operator.contains('\u{3006}')); // IDEOGRAPHIC CLOSING MARK"]
#[doc = r" ```"]
#[non_exhaustive]
pub struct IdsBinaryOperator;
#[automatically_derived]
impl ::core::fmt::Debug for IdsBinaryOperator {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "IdsBinaryOperator")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for IdsBinaryOperator { }
#[allow(deprecated)]
impl BinaryProperty for IdsBinaryOperator {
type DataMarker = crate::provider::PropertyBinaryIdsBinaryOperatorV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_IDS_BINARY_OPERATOR_V1;
const NAME: &'static [u8] = "IDS_Binary_Operator".as_bytes();
const SHORT_NAME: &'static [u8] = "IDSB".as_bytes();
}make_binary_property! {
2267 name: "IDS_Binary_Operator";
2268 short_name: "IDSB";
2269 ident: IdsBinaryOperator;
2270 data_marker: crate::provider::PropertyBinaryIdsBinaryOperatorV1;
2271 singleton: SINGLETON_PROPERTY_BINARY_IDS_BINARY_OPERATOR_V1;
2272 }
2286
2287#[doc = r" Characters used in Ideographic Description Sequences."]
#[doc = r""]
#[doc = r" # Example"]
#[doc = r""]
#[doc = r" ```"]
#[doc = r" use icu::properties::CodePointSetData;"]
#[doc = r" use icu::properties::props::IdsTrinaryOperator;"]
#[doc = r""]
#[doc =
r" let ids_trinary_operator = CodePointSetData::new::<IdsTrinaryOperator>();"]
#[doc = r""]
#[doc =
r" assert!(ids_trinary_operator.contains('\u{2FF2}')); // IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO MIDDLE AND RIGHT"]
#[doc =
r" assert!(ids_trinary_operator.contains('\u{2FF3}')); // IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO MIDDLE AND BELOW"]
#[doc = r" assert!(!ids_trinary_operator.contains('\u{2FF4}'));"]
#[doc =
r" assert!(!ids_trinary_operator.contains('\u{2FF5}')); // IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM ABOVE"]
#[doc =
r" assert!(!ids_trinary_operator.contains('\u{3006}')); // IDEOGRAPHIC CLOSING MARK"]
#[doc = r" ```"]
#[non_exhaustive]
pub struct IdsTrinaryOperator;
#[automatically_derived]
impl ::core::fmt::Debug for IdsTrinaryOperator {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "IdsTrinaryOperator")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for IdsTrinaryOperator { }
#[allow(deprecated)]
impl BinaryProperty for IdsTrinaryOperator {
type DataMarker = crate::provider::PropertyBinaryIdsTrinaryOperatorV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_IDS_TRINARY_OPERATOR_V1;
const NAME: &'static [u8] = "IDS_Trinary_Operator".as_bytes();
const SHORT_NAME: &'static [u8] = "IDST".as_bytes();
}make_binary_property! {
2288 name: "IDS_Trinary_Operator";
2289 short_name: "IDST";
2290 ident: IdsTrinaryOperator;
2291 data_marker: crate::provider::PropertyBinaryIdsTrinaryOperatorV1;
2292 singleton: SINGLETON_PROPERTY_BINARY_IDS_TRINARY_OPERATOR_V1;
2293 }
2310
2311#[doc = r" `IDS_Unary_Operator` Property"]
#[non_exhaustive]
pub struct IdsUnaryOperator;
#[automatically_derived]
impl ::core::fmt::Debug for IdsUnaryOperator {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "IdsUnaryOperator")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for IdsUnaryOperator { }
#[allow(deprecated)]
impl BinaryProperty for IdsUnaryOperator {
type DataMarker = crate::provider::PropertyBinaryIdsUnaryOperatorV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_IDS_UNARY_OPERATOR_V1;
const NAME: &'static [u8] = "IDS_Unary_Operator".as_bytes();
const SHORT_NAME: &'static [u8] = "IDSU".as_bytes();
}make_binary_property! {
2312 name: "IDS_Unary_Operator";
2313 short_name: "IDSU";
2314 ident: IdsUnaryOperator;
2315 data_marker: crate::provider::PropertyBinaryIdsUnaryOperatorV1;
2316 singleton: SINGLETON_PROPERTY_BINARY_IDS_UNARY_OPERATOR_V1;
2317 }
2319
2320#[doc =
r" Format control characters which have specific functions for control of cursive joining"]
#[doc = r" and ligation."]
#[doc = r""]
#[doc = r" # Example"]
#[doc = r""]
#[doc = r" ```"]
#[doc = r" use icu::properties::CodePointSetData;"]
#[doc = r" use icu::properties::props::JoinControl;"]
#[doc = r""]
#[doc = r" let join_control = CodePointSetData::new::<JoinControl>();"]
#[doc = r""]
#[doc =
r" assert!(join_control.contains('\u{200C}')); // ZERO WIDTH NON-JOINER"]
#[doc = r" assert!(join_control.contains('\u{200D}')); // ZERO WIDTH JOINER"]
#[doc = r" assert!(!join_control.contains('\u{200E}'));"]
#[doc = r" ```"]
#[non_exhaustive]
pub struct JoinControl;
#[automatically_derived]
impl ::core::fmt::Debug for JoinControl {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "JoinControl")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for JoinControl { }
#[allow(deprecated)]
impl BinaryProperty for JoinControl {
type DataMarker = crate::provider::PropertyBinaryJoinControlV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_JOIN_CONTROL_V1;
const NAME: &'static [u8] = "Join_Control".as_bytes();
const SHORT_NAME: &'static [u8] = "Join_C".as_bytes();
}make_binary_property! {
2321 name: "Join_Control";
2322 short_name: "Join_C";
2323 ident: JoinControl;
2324 data_marker: crate::provider::PropertyBinaryJoinControlV1;
2325 singleton: SINGLETON_PROPERTY_BINARY_JOIN_CONTROL_V1;
2326 }
2342
2343#[doc =
r" A small number of spacing vowel letters occurring in certain Southeast Asian scripts such as Thai and Lao."]
#[doc = r""]
#[doc = r" # Example"]
#[doc = r""]
#[doc = r" ```"]
#[doc = r" use icu::properties::CodePointSetData;"]
#[doc = r" use icu::properties::props::LogicalOrderException;"]
#[doc = r""]
#[doc =
r" let logical_order_exception = CodePointSetData::new::<LogicalOrderException>();"]
#[doc = r""]
#[doc =
r" assert!(logical_order_exception.contains('ແ')); // U+0EC1 LAO VOWEL SIGN EI"]
#[doc =
r" assert!(!logical_order_exception.contains('ະ')); // U+0EB0 LAO VOWEL SIGN A"]
#[doc = r" ```"]
#[non_exhaustive]
pub struct LogicalOrderException;
#[automatically_derived]
impl ::core::fmt::Debug for LogicalOrderException {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "LogicalOrderException")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for LogicalOrderException { }
#[allow(deprecated)]
impl BinaryProperty for LogicalOrderException {
type DataMarker = crate::provider::PropertyBinaryLogicalOrderExceptionV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_LOGICAL_ORDER_EXCEPTION_V1;
const NAME: &'static [u8] = "Logical_Order_Exception".as_bytes();
const SHORT_NAME: &'static [u8] = "LOE".as_bytes();
}make_binary_property! {
2344 name: "Logical_Order_Exception";
2345 short_name: "LOE";
2346 ident: LogicalOrderException;
2347 data_marker: crate::provider::PropertyBinaryLogicalOrderExceptionV1;
2348 singleton: SINGLETON_PROPERTY_BINARY_LOGICAL_ORDER_EXCEPTION_V1;
2349 }
2363
2364#[doc = r" Lowercase characters."]
#[doc = r""]
#[doc = r" # Example"]
#[doc = r""]
#[doc = r" ```"]
#[doc = r" use icu::properties::CodePointSetData;"]
#[doc = r" use icu::properties::props::Lowercase;"]
#[doc = r""]
#[doc = r" let lowercase = CodePointSetData::new::<Lowercase>();"]
#[doc = r""]
#[doc = r" assert!(lowercase.contains('a'));"]
#[doc = r" assert!(!lowercase.contains('A'));"]
#[doc = r" ```"]
#[non_exhaustive]
pub struct Lowercase;
#[automatically_derived]
impl ::core::fmt::Debug for Lowercase {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "Lowercase")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for Lowercase { }
#[allow(deprecated)]
impl BinaryProperty for Lowercase {
type DataMarker = crate::provider::PropertyBinaryLowercaseV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_LOWERCASE_V1;
const NAME: &'static [u8] = "Lowercase".as_bytes();
const SHORT_NAME: &'static [u8] = "Lower".as_bytes();
}make_binary_property! {
2365 name: "Lowercase";
2366 short_name: "Lower";
2367 ident: Lowercase;
2368 data_marker: crate::provider::PropertyBinaryLowercaseV1;
2369 singleton: SINGLETON_PROPERTY_BINARY_LOWERCASE_V1;
2370 }
2384
2385#[doc = r" Characters used in mathematical notation."]
#[doc = r""]
#[doc = r" # Example"]
#[doc = r""]
#[doc = r" ```"]
#[doc = r" use icu::properties::CodePointSetData;"]
#[doc = r" use icu::properties::props::Math;"]
#[doc = r""]
#[doc = r" let math = CodePointSetData::new::<Math>();"]
#[doc = r""]
#[doc = r" assert!(math.contains('='));"]
#[doc = r" assert!(math.contains('+'));"]
#[doc = r" assert!(!math.contains('-'));"]
#[doc = r" assert!(math.contains('−')); // U+2212 MINUS SIGN"]
#[doc = r" assert!(!math.contains('/'));"]
#[doc = r" assert!(math.contains('∕')); // U+2215 DIVISION SLASH"]
#[doc = r" ```"]
#[non_exhaustive]
pub struct Math;
#[automatically_derived]
impl ::core::fmt::Debug for Math {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "Math")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for Math { }
#[allow(deprecated)]
impl BinaryProperty for Math {
type DataMarker = crate::provider::PropertyBinaryMathV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_MATH_V1;
const NAME: &'static [u8] = "Math".as_bytes();
const SHORT_NAME: &'static [u8] = "Math".as_bytes();
}make_binary_property! {
2386 name: "Math";
2387 short_name: "Math";
2388 ident: Math;
2389 data_marker: crate::provider::PropertyBinaryMathV1;
2390 singleton: SINGLETON_PROPERTY_BINARY_MATH_V1;
2391 }
2409
2410#[doc = r" `Modifier_Combining_Mark` Property"]
#[non_exhaustive]
pub struct ModifierCombiningMark;
#[automatically_derived]
impl ::core::fmt::Debug for ModifierCombiningMark {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "ModifierCombiningMark")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for ModifierCombiningMark { }
#[allow(deprecated)]
impl BinaryProperty for ModifierCombiningMark {
type DataMarker = crate::provider::PropertyBinaryModifierCombiningMarkV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_MODIFIER_COMBINING_MARK_V1;
const NAME: &'static [u8] = "Modifier_Combining_Mark".as_bytes();
const SHORT_NAME: &'static [u8] = "MCM".as_bytes();
}make_binary_property! {
2411 name: "Modifier_Combining_Mark";
2412 short_name: "MCM";
2413 ident: ModifierCombiningMark;
2414 data_marker: crate::provider::PropertyBinaryModifierCombiningMarkV1;
2415 singleton: SINGLETON_PROPERTY_BINARY_MODIFIER_COMBINING_MARK_V1;
2416 }
2418
2419#[doc = r" Code points permanently reserved for internal use."]
#[doc = r""]
#[doc = r" # Example"]
#[doc = r""]
#[doc = r" ```"]
#[doc = r" use icu::properties::CodePointSetData;"]
#[doc = r" use icu::properties::props::NoncharacterCodePoint;"]
#[doc = r""]
#[doc =
r" let noncharacter_code_point = CodePointSetData::new::<NoncharacterCodePoint>();"]
#[doc = r""]
#[doc = r" assert!(noncharacter_code_point.contains('\u{FDD0}'));"]
#[doc = r" assert!(noncharacter_code_point.contains('\u{FFFF}'));"]
#[doc = r" assert!(!noncharacter_code_point.contains('\u{10000}'));"]
#[doc = r" ```"]
#[non_exhaustive]
pub struct NoncharacterCodePoint;
#[automatically_derived]
impl ::core::fmt::Debug for NoncharacterCodePoint {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "NoncharacterCodePoint")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for NoncharacterCodePoint { }
#[allow(deprecated)]
impl BinaryProperty for NoncharacterCodePoint {
type DataMarker = crate::provider::PropertyBinaryNoncharacterCodePointV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_NONCHARACTER_CODE_POINT_V1;
const NAME: &'static [u8] = "Noncharacter_Code_Point".as_bytes();
const SHORT_NAME: &'static [u8] = "NChar".as_bytes();
}make_binary_property! {
2420 name: "Noncharacter_Code_Point";
2421 short_name: "NChar";
2422 ident: NoncharacterCodePoint;
2423 data_marker: crate::provider::PropertyBinaryNoncharacterCodePointV1;
2424 singleton: SINGLETON_PROPERTY_BINARY_NONCHARACTER_CODE_POINT_V1;
2425 }
2440
2441#[doc =
r" Characters that are inert under NFC, i.e., they do not interact with adjacent characters."]
#[deprecated(since = "2.3.0", note = "not a UCD property")]
#[non_exhaustive]
pub struct NfcInert;
#[automatically_derived]
impl ::core::fmt::Debug for NfcInert {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "NfcInert")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for NfcInert { }
#[allow(deprecated)]
impl BinaryProperty for NfcInert {
type DataMarker = crate::provider::PropertyBinaryNfcInertV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_NFC_INERT_V1;
const NAME: &'static [u8] = "NFC_Inert".as_bytes();
const SHORT_NAME: &'static [u8] = "nfcinert".as_bytes();
}make_binary_property! {
2442 name: "NFC_Inert";
2443 short_name: "nfcinert";
2444 ident: NfcInert;
2445 data_marker: crate::provider::PropertyBinaryNfcInertV1;
2446 singleton: SINGLETON_PROPERTY_BINARY_NFC_INERT_V1;
2447 #[deprecated(since = "2.3.0", note = "not a UCD property")]
2449}
2450
2451#[doc =
r" Characters that are inert under NFD, i.e., they do not interact with adjacent characters."]
#[deprecated(since = "2.3.0", note = "not a UCD property")]
#[non_exhaustive]
pub struct NfdInert;
#[automatically_derived]
impl ::core::fmt::Debug for NfdInert {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "NfdInert")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for NfdInert { }
#[allow(deprecated)]
impl BinaryProperty for NfdInert {
type DataMarker = crate::provider::PropertyBinaryNfdInertV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_NFD_INERT_V1;
const NAME: &'static [u8] = "NFD_Inert".as_bytes();
const SHORT_NAME: &'static [u8] = "nfdinert".as_bytes();
}make_binary_property! {
2452 name: "NFD_Inert";
2453 short_name: "nfdinert";
2454 ident: NfdInert;
2455 data_marker: crate::provider::PropertyBinaryNfdInertV1;
2456 singleton: SINGLETON_PROPERTY_BINARY_NFD_INERT_V1;
2457 #[deprecated(since = "2.3.0", note = "not a UCD property")]
2459}
2460
2461#[doc =
r" Characters that are inert under NFKC, i.e., they do not interact with adjacent characters."]
#[deprecated(since = "2.3.0", note = "not a UCD property")]
#[non_exhaustive]
pub struct NfkcInert;
#[automatically_derived]
impl ::core::fmt::Debug for NfkcInert {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "NfkcInert")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for NfkcInert { }
#[allow(deprecated)]
impl BinaryProperty for NfkcInert {
type DataMarker = crate::provider::PropertyBinaryNfkcInertV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_NFKC_INERT_V1;
const NAME: &'static [u8] = "NFKC_Inert".as_bytes();
const SHORT_NAME: &'static [u8] = "nfkcinert".as_bytes();
}make_binary_property! {
2462 name: "NFKC_Inert";
2463 short_name: "nfkcinert";
2464 ident: NfkcInert;
2465 data_marker: crate::provider::PropertyBinaryNfkcInertV1;
2466 singleton: SINGLETON_PROPERTY_BINARY_NFKC_INERT_V1;
2467 #[deprecated(since = "2.3.0", note = "not a UCD property")]
2469}
2470
2471#[doc =
r" Characters that are inert under NFKD, i.e., they do not interact with adjacent characters."]
#[deprecated(since = "2.3.0", note = "not a UCD property")]
#[non_exhaustive]
pub struct NfkdInert;
#[automatically_derived]
impl ::core::fmt::Debug for NfkdInert {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "NfkdInert")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for NfkdInert { }
#[allow(deprecated)]
impl BinaryProperty for NfkdInert {
type DataMarker = crate::provider::PropertyBinaryNfkdInertV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_NFKD_INERT_V1;
const NAME: &'static [u8] = "NFKD_Inert".as_bytes();
const SHORT_NAME: &'static [u8] = "nfkdinert".as_bytes();
}make_binary_property! {
2472 name: "NFKD_Inert";
2473 short_name: "nfkdinert";
2474 ident: NfkdInert;
2475 data_marker: crate::provider::PropertyBinaryNfkdInertV1;
2476 singleton: SINGLETON_PROPERTY_BINARY_NFKD_INERT_V1;
2477 #[deprecated(since = "2.3.0", note = "not a UCD property")]
2479}
2480
2481#[doc =
r" Characters used as syntax in patterns (such as regular expressions)."]
#[doc = r""]
#[doc = r" See [`Unicode"]
#[doc =
r" Standard Annex #31`](https://www.unicode.org/reports/tr31/tr31-35.html) for more"]
#[doc = r" details."]
#[doc = r""]
#[doc = r" # Example"]
#[doc = r""]
#[doc = r" ```"]
#[doc = r" use icu::properties::CodePointSetData;"]
#[doc = r" use icu::properties::props::PatternSyntax;"]
#[doc = r""]
#[doc = r" let pattern_syntax = CodePointSetData::new::<PatternSyntax>();"]
#[doc = r""]
#[doc = r" assert!(pattern_syntax.contains('{'));"]
#[doc =
r" assert!(pattern_syntax.contains('⇒')); // U+21D2 RIGHTWARDS DOUBLE ARROW"]
#[doc = r" assert!(!pattern_syntax.contains('0'));"]
#[doc = r" ```"]
#[non_exhaustive]
pub struct PatternSyntax;
#[automatically_derived]
impl ::core::fmt::Debug for PatternSyntax {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "PatternSyntax")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for PatternSyntax { }
#[allow(deprecated)]
impl BinaryProperty for PatternSyntax {
type DataMarker = crate::provider::PropertyBinaryPatternSyntaxV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_PATTERN_SYNTAX_V1;
const NAME: &'static [u8] = "Pattern_Syntax".as_bytes();
const SHORT_NAME: &'static [u8] = "Pat_Syn".as_bytes();
}make_binary_property! {
2482 name: "Pattern_Syntax";
2483 short_name: "Pat_Syn";
2484 ident: PatternSyntax;
2485 data_marker: crate::provider::PropertyBinaryPatternSyntaxV1;
2486 singleton: SINGLETON_PROPERTY_BINARY_PATTERN_SYNTAX_V1;
2487 }
2506
2507#[doc =
r" Characters used as whitespace in patterns (such as regular expressions)."]
#[doc = r""]
#[doc = r" See"]
#[doc =
r" [`Unicode Standard Annex #31`](https://www.unicode.org/reports/tr31/tr31-35.html) for"]
#[doc = r" more details."]
#[doc = r""]
#[doc = r" # Example"]
#[doc = r""]
#[doc = r" ```"]
#[doc = r" use icu::properties::CodePointSetData;"]
#[doc = r" use icu::properties::props::PatternWhiteSpace;"]
#[doc = r""]
#[doc =
r" let pattern_white_space = CodePointSetData::new::<PatternWhiteSpace>();"]
#[doc = r""]
#[doc = r" assert!(pattern_white_space.contains(' '));"]
#[doc =
r" assert!(pattern_white_space.contains('\u{2029}')); // PARAGRAPH SEPARATOR"]
#[doc = r" assert!(pattern_white_space.contains('\u{000A}')); // NEW LINE"]
#[doc =
r" assert!(!pattern_white_space.contains('\u{00A0}')); // NO-BREAK SPACE"]
#[doc = r" ```"]
#[non_exhaustive]
pub struct PatternWhiteSpace;
#[automatically_derived]
impl ::core::fmt::Debug for PatternWhiteSpace {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "PatternWhiteSpace")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for PatternWhiteSpace { }
#[allow(deprecated)]
impl BinaryProperty for PatternWhiteSpace {
type DataMarker = crate::provider::PropertyBinaryPatternWhiteSpaceV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_PATTERN_WHITE_SPACE_V1;
const NAME: &'static [u8] = "Pattern_White_Space".as_bytes();
const SHORT_NAME: &'static [u8] = "Pat_WS".as_bytes();
}make_binary_property! {
2508 name: "Pattern_White_Space";
2509 short_name: "Pat_WS";
2510 ident: PatternWhiteSpace;
2511 data_marker: crate::provider::PropertyBinaryPatternWhiteSpaceV1;
2512 singleton: SINGLETON_PROPERTY_BINARY_PATTERN_WHITE_SPACE_V1;
2513 }
2533
2534#[doc =
r" A small class of visible format controls, which precede and then span a sequence of"]
#[doc = r" other characters, usually digits."]
#[non_exhaustive]
pub struct PrependedConcatenationMark;
#[automatically_derived]
impl ::core::fmt::Debug for PrependedConcatenationMark {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "PrependedConcatenationMark")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for PrependedConcatenationMark { }
#[allow(deprecated)]
impl BinaryProperty for PrependedConcatenationMark {
type DataMarker =
crate::provider::PropertyBinaryPrependedConcatenationMarkV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_PREPENDED_CONCATENATION_MARK_V1;
const NAME: &'static [u8] = "Prepended_Concatenation_Mark".as_bytes();
const SHORT_NAME: &'static [u8] = "PCM".as_bytes();
}make_binary_property! {
2535 name: "Prepended_Concatenation_Mark";
2536 short_name: "PCM";
2537 ident: PrependedConcatenationMark;
2538 data_marker: crate::provider::PropertyBinaryPrependedConcatenationMarkV1;
2539 singleton: SINGLETON_PROPERTY_BINARY_PREPENDED_CONCATENATION_MARK_V1;
2540 }
2543
2544#[doc = r" Printable characters (visible characters and whitespace)."]
#[doc = r""]
#[doc = r" This is defined for POSIX compatibility."]
#[non_exhaustive]
pub struct Print;
#[automatically_derived]
impl ::core::fmt::Debug for Print {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "Print")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for Print { }
#[allow(deprecated)]
impl BinaryProperty for Print {
type DataMarker = crate::provider::PropertyBinaryPrintV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_PRINT_V1;
const NAME: &'static [u8] = "print".as_bytes();
const SHORT_NAME: &'static [u8] = "print".as_bytes();
}make_binary_property! {
2545 name: "print";
2546 short_name: "print";
2547 ident: Print;
2548 data_marker: crate::provider::PropertyBinaryPrintV1;
2549 singleton: SINGLETON_PROPERTY_BINARY_PRINT_V1;
2550 }
2554
2555#[doc = r" Punctuation characters that function as quotation marks."]
#[doc = r""]
#[doc = r" # Example"]
#[doc = r""]
#[doc = r" ```"]
#[doc = r" use icu::properties::CodePointSetData;"]
#[doc = r" use icu::properties::props::QuotationMark;"]
#[doc = r""]
#[doc = r" let quotation_mark = CodePointSetData::new::<QuotationMark>();"]
#[doc = r""]
#[doc = r" assert!(quotation_mark.contains('\''));"]
#[doc =
r" assert!(quotation_mark.contains('„')); // U+201E DOUBLE LOW-9 QUOTATION MARK"]
#[doc = r" assert!(!quotation_mark.contains('<'));"]
#[doc = r" ```"]
#[non_exhaustive]
pub struct QuotationMark;
#[automatically_derived]
impl ::core::fmt::Debug for QuotationMark {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "QuotationMark")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for QuotationMark { }
#[allow(deprecated)]
impl BinaryProperty for QuotationMark {
type DataMarker = crate::provider::PropertyBinaryQuotationMarkV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_QUOTATION_MARK_V1;
const NAME: &'static [u8] = "Quotation_Mark".as_bytes();
const SHORT_NAME: &'static [u8] = "QMark".as_bytes();
}make_binary_property! {
2556 name: "Quotation_Mark";
2557 short_name: "QMark";
2558 ident: QuotationMark;
2559 data_marker: crate::provider::PropertyBinaryQuotationMarkV1;
2560 singleton: SINGLETON_PROPERTY_BINARY_QUOTATION_MARK_V1;
2561 }
2576
2577#[doc =
r" Characters used in the definition of Ideographic Description Sequences."]
#[doc = r""]
#[doc = r" # Example"]
#[doc = r""]
#[doc = r" ```"]
#[doc = r" use icu::properties::CodePointSetData;"]
#[doc = r" use icu::properties::props::Radical;"]
#[doc = r""]
#[doc = r" let radical = CodePointSetData::new::<Radical>();"]
#[doc = r""]
#[doc = r" assert!(radical.contains('⺆')); // U+2E86 CJK RADICAL BOX"]
#[doc =
r" assert!(!radical.contains('丹')); // U+F95E CJK COMPATIBILITY IDEOGRAPH-F95E"]
#[doc = r" ```"]
#[non_exhaustive]
pub struct Radical;
#[automatically_derived]
impl ::core::fmt::Debug for Radical {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "Radical")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for Radical { }
#[allow(deprecated)]
impl BinaryProperty for Radical {
type DataMarker = crate::provider::PropertyBinaryRadicalV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_RADICAL_V1;
const NAME: &'static [u8] = "Radical".as_bytes();
const SHORT_NAME: &'static [u8] = "Radical".as_bytes();
}make_binary_property! {
2578 name: "Radical";
2579 short_name: "Radical";
2580 ident: Radical;
2581 data_marker: crate::provider::PropertyBinaryRadicalV1;
2582 singleton: SINGLETON_PROPERTY_BINARY_RADICAL_V1;
2583 }
2597
2598#[doc = r" Regional indicator characters, `U+1F1E6..U+1F1FF`."]
#[doc = r""]
#[doc = r" # Example"]
#[doc = r""]
#[doc = r" ```"]
#[doc = r" use icu::properties::CodePointSetData;"]
#[doc = r" use icu::properties::props::RegionalIndicator;"]
#[doc = r""]
#[doc =
r" let regional_indicator = CodePointSetData::new::<RegionalIndicator>();"]
#[doc = r""]
#[doc =
r" assert!(regional_indicator.contains('🇹')); // U+1F1F9 REGIONAL INDICATOR SYMBOL LETTER T"]
#[doc =
r" assert!(!regional_indicator.contains('Ⓣ')); // U+24C9 CIRCLED LATIN CAPITAL LETTER T"]
#[doc = r" assert!(!regional_indicator.contains('T'));"]
#[doc = r" ```"]
#[non_exhaustive]
pub struct RegionalIndicator;
#[automatically_derived]
impl ::core::fmt::Debug for RegionalIndicator {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "RegionalIndicator")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for RegionalIndicator { }
#[allow(deprecated)]
impl BinaryProperty for RegionalIndicator {
type DataMarker = crate::provider::PropertyBinaryRegionalIndicatorV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_REGIONAL_INDICATOR_V1;
const NAME: &'static [u8] = "Regional_Indicator".as_bytes();
const SHORT_NAME: &'static [u8] = "RI".as_bytes();
}make_binary_property! {
2599 name: "Regional_Indicator";
2600 short_name: "RI";
2601 ident: RegionalIndicator;
2602 data_marker: crate::provider::PropertyBinaryRegionalIndicatorV1;
2603 singleton: SINGLETON_PROPERTY_BINARY_REGIONAL_INDICATOR_V1;
2604 }
2619
2620#[doc = r#" Characters with a "soft dot", like i or j."#]
#[doc = r""]
#[doc = r" An accent placed on these characters causes"]
#[doc = r" the dot to disappear."]
#[doc = r""]
#[doc = r" # Example"]
#[doc = r""]
#[doc = r" ```"]
#[doc = r" use icu::properties::CodePointSetData;"]
#[doc = r" use icu::properties::props::SoftDotted;"]
#[doc = r""]
#[doc = r" let soft_dotted = CodePointSetData::new::<SoftDotted>();"]
#[doc = r""]
#[doc =
r" assert!(soft_dotted.contains('і')); //U+0456 CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I"]
#[doc =
r" assert!(!soft_dotted.contains('ı')); // U+0131 LATIN SMALL LETTER DOTLESS I"]
#[doc = r" ```"]
#[non_exhaustive]
pub struct SoftDotted;
#[automatically_derived]
impl ::core::fmt::Debug for SoftDotted {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "SoftDotted")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for SoftDotted { }
#[allow(deprecated)]
impl BinaryProperty for SoftDotted {
type DataMarker = crate::provider::PropertyBinarySoftDottedV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_SOFT_DOTTED_V1;
const NAME: &'static [u8] = "Soft_Dotted".as_bytes();
const SHORT_NAME: &'static [u8] = "SD".as_bytes();
}make_binary_property! {
2621 name: "Soft_Dotted";
2622 short_name: "SD";
2623 ident: SoftDotted;
2624 data_marker: crate::provider::PropertyBinarySoftDottedV1;
2625 singleton: SINGLETON_PROPERTY_BINARY_SOFT_DOTTED_V1;
2626 }
2643
2644#[doc =
r" Characters that are starters in terms of Unicode normalization and combining character"]
#[doc = r" sequences."]
#[deprecated(since = "2.3.0", note = "not a UCD property")]
#[non_exhaustive]
pub struct SegmentStarter;
#[automatically_derived]
impl ::core::fmt::Debug for SegmentStarter {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "SegmentStarter")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for SegmentStarter { }
#[allow(deprecated)]
impl BinaryProperty for SegmentStarter {
type DataMarker = crate::provider::PropertyBinarySegmentStarterV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_SEGMENT_STARTER_V1;
const NAME: &'static [u8] = "Segment_Starter".as_bytes();
const SHORT_NAME: &'static [u8] = "segstart".as_bytes();
}make_binary_property! {
2645 name: "Segment_Starter";
2646 short_name: "segstart";
2647 ident: SegmentStarter;
2648 data_marker: crate::provider::PropertyBinarySegmentStarterV1;
2649 singleton: SINGLETON_PROPERTY_BINARY_SEGMENT_STARTER_V1;
2650 #[deprecated(since = "2.3.0", note = "not a UCD property")]
2653}
2654
2655#[doc =
r" Characters that are either the source of a case mapping or in the target of a case"]
#[doc = r" mapping."]
#[deprecated(since = "2.3.0", note = "not a UCD property")]
#[non_exhaustive]
pub struct CaseSensitive;
#[automatically_derived]
impl ::core::fmt::Debug for CaseSensitive {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "CaseSensitive")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for CaseSensitive { }
#[allow(deprecated)]
impl BinaryProperty for CaseSensitive {
type DataMarker = crate::provider::PropertyBinaryCaseSensitiveV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_CASE_SENSITIVE_V1;
const NAME: &'static [u8] = "Case_Sensitive".as_bytes();
const SHORT_NAME: &'static [u8] = "Sensitive".as_bytes();
}make_binary_property! {
2656 name: "Case_Sensitive";
2657 short_name: "Sensitive";
2658 ident: CaseSensitive;
2659 data_marker: crate::provider::PropertyBinaryCaseSensitiveV1;
2660 singleton: SINGLETON_PROPERTY_BINARY_CASE_SENSITIVE_V1;
2661 #[deprecated(since = "2.3.0", note = "not a UCD property")]
2664}
2665
2666#[doc = r" Punctuation characters that generally mark the end of sentences."]
#[doc = r""]
#[doc = r" # Example"]
#[doc = r""]
#[doc = r" ```"]
#[doc = r" use icu::properties::CodePointSetData;"]
#[doc = r" use icu::properties::props::SentenceTerminal;"]
#[doc = r""]
#[doc =
r" let sentence_terminal = CodePointSetData::new::<SentenceTerminal>();"]
#[doc = r""]
#[doc = r" assert!(sentence_terminal.contains('.'));"]
#[doc = r" assert!(sentence_terminal.contains('?'));"]
#[doc =
r" assert!(sentence_terminal.contains('᪨')); // U+1AA8 TAI THAM SIGN KAAN"]
#[doc = r" assert!(!sentence_terminal.contains(','));"]
#[doc =
r" assert!(!sentence_terminal.contains('¿')); // U+00BF INVERTED QUESTION MARK"]
#[doc = r" ```"]
#[non_exhaustive]
pub struct SentenceTerminal;
#[automatically_derived]
impl ::core::fmt::Debug for SentenceTerminal {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "SentenceTerminal")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for SentenceTerminal { }
#[allow(deprecated)]
impl BinaryProperty for SentenceTerminal {
type DataMarker = crate::provider::PropertyBinarySentenceTerminalV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_SENTENCE_TERMINAL_V1;
const NAME: &'static [u8] = "Sentence_Terminal".as_bytes();
const SHORT_NAME: &'static [u8] = "STerm".as_bytes();
}make_binary_property! {
2667 name: "Sentence_Terminal";
2668 short_name: "STerm";
2669 ident: SentenceTerminal;
2670 data_marker: crate::provider::PropertyBinarySentenceTerminalV1;
2671 singleton: SINGLETON_PROPERTY_BINARY_SENTENCE_TERMINAL_V1;
2672 }
2689
2690#[doc =
r" Punctuation characters that generally mark the end of textual units."]
#[doc = r""]
#[doc = r" # Example"]
#[doc = r""]
#[doc = r" ```"]
#[doc = r" use icu::properties::CodePointSetData;"]
#[doc = r" use icu::properties::props::TerminalPunctuation;"]
#[doc = r""]
#[doc =
r" let terminal_punctuation = CodePointSetData::new::<TerminalPunctuation>();"]
#[doc = r""]
#[doc = r" assert!(terminal_punctuation.contains('.'));"]
#[doc = r" assert!(terminal_punctuation.contains('?'));"]
#[doc =
r" assert!(terminal_punctuation.contains('᪨')); // U+1AA8 TAI THAM SIGN KAAN"]
#[doc = r" assert!(terminal_punctuation.contains(','));"]
#[doc =
r" assert!(!terminal_punctuation.contains('¿')); // U+00BF INVERTED QUESTION MARK"]
#[doc = r" ```"]
#[non_exhaustive]
pub struct TerminalPunctuation;
#[automatically_derived]
impl ::core::fmt::Debug for TerminalPunctuation {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "TerminalPunctuation")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for TerminalPunctuation { }
#[allow(deprecated)]
impl BinaryProperty for TerminalPunctuation {
type DataMarker = crate::provider::PropertyBinaryTerminalPunctuationV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_TERMINAL_PUNCTUATION_V1;
const NAME: &'static [u8] = "Terminal_Punctuation".as_bytes();
const SHORT_NAME: &'static [u8] = "Term".as_bytes();
}make_binary_property! {
2691 name: "Terminal_Punctuation";
2692 short_name: "Term";
2693 ident: TerminalPunctuation;
2694 data_marker: crate::provider::PropertyBinaryTerminalPunctuationV1;
2695 singleton: SINGLETON_PROPERTY_BINARY_TERMINAL_PUNCTUATION_V1;
2696 }
2713
2714#[doc =
r" A property which specifies the exact set of Unified CJK Ideographs in the standard."]
#[doc = r""]
#[doc = r" # Example"]
#[doc = r""]
#[doc = r" ```"]
#[doc = r" use icu::properties::CodePointSetData;"]
#[doc = r" use icu::properties::props::UnifiedIdeograph;"]
#[doc = r""]
#[doc =
r" let unified_ideograph = CodePointSetData::new::<UnifiedIdeograph>();"]
#[doc = r""]
#[doc =
r" assert!(unified_ideograph.contains('川')); // U+5DDD CJK UNIFIED IDEOGRAPH-5DDD"]
#[doc =
r" assert!(unified_ideograph.contains('木')); // U+6728 CJK UNIFIED IDEOGRAPH-6728"]
#[doc =
r" assert!(!unified_ideograph.contains('𛅸')); // U+1B178 NUSHU CHARACTER-1B178"]
#[doc = r" ```"]
#[non_exhaustive]
pub struct UnifiedIdeograph;
#[automatically_derived]
impl ::core::fmt::Debug for UnifiedIdeograph {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "UnifiedIdeograph")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for UnifiedIdeograph { }
#[allow(deprecated)]
impl BinaryProperty for UnifiedIdeograph {
type DataMarker = crate::provider::PropertyBinaryUnifiedIdeographV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_UNIFIED_IDEOGRAPH_V1;
const NAME: &'static [u8] = "Unified_Ideograph".as_bytes();
const SHORT_NAME: &'static [u8] = "UIdeo".as_bytes();
}make_binary_property! {
2715 name: "Unified_Ideograph";
2716 short_name: "UIdeo";
2717 ident: UnifiedIdeograph;
2718 data_marker: crate::provider::PropertyBinaryUnifiedIdeographV1;
2719 singleton: SINGLETON_PROPERTY_BINARY_UNIFIED_IDEOGRAPH_V1;
2720 }
2735
2736#[doc = r" Uppercase characters."]
#[doc = r""]
#[doc = r" # Example"]
#[doc = r""]
#[doc = r" ```"]
#[doc = r" use icu::properties::CodePointSetData;"]
#[doc = r" use icu::properties::props::Uppercase;"]
#[doc = r""]
#[doc = r" let uppercase = CodePointSetData::new::<Uppercase>();"]
#[doc = r""]
#[doc = r" assert!(uppercase.contains('U'));"]
#[doc = r" assert!(!uppercase.contains('u'));"]
#[doc = r" ```"]
#[non_exhaustive]
pub struct Uppercase;
#[automatically_derived]
impl ::core::fmt::Debug for Uppercase {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "Uppercase")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for Uppercase { }
#[allow(deprecated)]
impl BinaryProperty for Uppercase {
type DataMarker = crate::provider::PropertyBinaryUppercaseV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_UPPERCASE_V1;
const NAME: &'static [u8] = "Uppercase".as_bytes();
const SHORT_NAME: &'static [u8] = "Upper".as_bytes();
}make_binary_property! {
2737 name: "Uppercase";
2738 short_name: "Upper";
2739 ident: Uppercase;
2740 data_marker: crate::provider::PropertyBinaryUppercaseV1;
2741 singleton: SINGLETON_PROPERTY_BINARY_UPPERCASE_V1;
2742 }
2756
2757#[doc = r" Characters that are Variation Selectors."]
#[doc = r""]
#[doc = r" # Example"]
#[doc = r""]
#[doc = r" ```"]
#[doc = r" use icu::properties::CodePointSetData;"]
#[doc = r" use icu::properties::props::VariationSelector;"]
#[doc = r""]
#[doc =
r" let variation_selector = CodePointSetData::new::<VariationSelector>();"]
#[doc = r""]
#[doc =
r" assert!(variation_selector.contains('\u{180D}')); // MONGOLIAN FREE VARIATION SELECTOR THREE"]
#[doc =
r" assert!(!variation_selector.contains('\u{303E}')); // IDEOGRAPHIC VARIATION INDICATOR"]
#[doc =
r" assert!(variation_selector.contains('\u{FE0F}')); // VARIATION SELECTOR-16"]
#[doc =
r" assert!(!variation_selector.contains('\u{FE10}')); // PRESENTATION FORM FOR VERTICAL COMMA"]
#[doc =
r" assert!(variation_selector.contains('\u{E01EF}')); // VARIATION SELECTOR-256"]
#[doc = r" ```"]
#[non_exhaustive]
pub struct VariationSelector;
#[automatically_derived]
impl ::core::fmt::Debug for VariationSelector {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "VariationSelector")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for VariationSelector { }
#[allow(deprecated)]
impl BinaryProperty for VariationSelector {
type DataMarker = crate::provider::PropertyBinaryVariationSelectorV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_VARIATION_SELECTOR_V1;
const NAME: &'static [u8] = "Variation_Selector".as_bytes();
const SHORT_NAME: &'static [u8] = "VS".as_bytes();
}make_binary_property! {
2758 name: "Variation_Selector";
2759 short_name: "VS";
2760 ident: VariationSelector;
2761 data_marker: crate::provider::PropertyBinaryVariationSelectorV1;
2762 singleton: SINGLETON_PROPERTY_BINARY_VARIATION_SELECTOR_V1;
2763 }
2780
2781#[doc =
r" Spaces, separator characters and other control characters which should be treated by"]
#[doc =
r#" programming languages as "white space" for the purpose of parsing elements."#]
#[doc = r""]
#[doc = r" # Example"]
#[doc = r""]
#[doc = r" ```"]
#[doc = r" use icu::properties::CodePointSetData;"]
#[doc = r" use icu::properties::props::WhiteSpace;"]
#[doc = r""]
#[doc = r" let white_space = CodePointSetData::new::<WhiteSpace>();"]
#[doc = r""]
#[doc = r" assert!(white_space.contains(' '));"]
#[doc = r" assert!(white_space.contains('\u{000A}')); // NEW LINE"]
#[doc = r" assert!(white_space.contains('\u{00A0}')); // NO-BREAK SPACE"]
#[doc = r" assert!(!white_space.contains('\u{200B}')); // ZERO WIDTH SPACE"]
#[doc = r" ```"]
#[non_exhaustive]
pub struct WhiteSpace;
#[automatically_derived]
impl ::core::fmt::Debug for WhiteSpace {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "WhiteSpace")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for WhiteSpace { }
#[allow(deprecated)]
impl BinaryProperty for WhiteSpace {
type DataMarker = crate::provider::PropertyBinaryWhiteSpaceV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_WHITE_SPACE_V1;
const NAME: &'static [u8] = "White_Space".as_bytes();
const SHORT_NAME: &'static [u8] = "WSpace".as_bytes();
}make_binary_property! {
2782 name: "White_Space";
2783 short_name: "WSpace";
2784 ident: WhiteSpace;
2785 data_marker: crate::provider::PropertyBinaryWhiteSpaceV1;
2786 singleton: SINGLETON_PROPERTY_BINARY_WHITE_SPACE_V1;
2787 }
2804
2805#[doc = r" Hexadecimal digits"]
#[doc = r""]
#[doc = r" This is defined for POSIX compatibility."]
#[non_exhaustive]
pub struct Xdigit;
#[automatically_derived]
impl ::core::fmt::Debug for Xdigit {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "Xdigit")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for Xdigit { }
#[allow(deprecated)]
impl BinaryProperty for Xdigit {
type DataMarker = crate::provider::PropertyBinaryXdigitV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_XDIGIT_V1;
const NAME: &'static [u8] = "xdigit".as_bytes();
const SHORT_NAME: &'static [u8] = "xdigit".as_bytes();
}make_binary_property! {
2806 name: "xdigit";
2807 short_name: "xdigit";
2808 ident: Xdigit;
2809 data_marker: crate::provider::PropertyBinaryXdigitV1;
2810 singleton: SINGLETON_PROPERTY_BINARY_XDIGIT_V1;
2811 }
2815
2816#[doc =
r" Characters that can come after the first character in an identifier."]
#[doc = r""]
#[doc = r" See [`Unicode Standard Annex"]
#[doc =
r" #31`](https://www.unicode.org/reports/tr31/tr31-35.html) for more details."]
#[doc = r""]
#[doc = r" # Example"]
#[doc = r""]
#[doc = r" ```"]
#[doc = r" use icu::properties::CodePointSetData;"]
#[doc = r" use icu::properties::props::XidContinue;"]
#[doc = r""]
#[doc = r" let xid_continue = CodePointSetData::new::<XidContinue>();"]
#[doc = r""]
#[doc = r" assert!(xid_continue.contains('x'));"]
#[doc = r" assert!(xid_continue.contains('1'));"]
#[doc = r" assert!(xid_continue.contains('_'));"]
#[doc = r" assert!(xid_continue.contains('ߝ')); // U+07DD NKO LETTER FA"]
#[doc =
r" assert!(!xid_continue.contains('ⓧ')); // U+24E7 CIRCLED LATIN SMALL LETTER X"]
#[doc =
r" assert!(!xid_continue.contains('\u{FC5E}')); // ARABIC LIGATURE SHADDA WITH DAMMATAN ISOLATED FORM"]
#[doc = r" ```"]
#[non_exhaustive]
pub struct XidContinue;
#[automatically_derived]
impl ::core::fmt::Debug for XidContinue {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "XidContinue")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for XidContinue { }
#[allow(deprecated)]
impl BinaryProperty for XidContinue {
type DataMarker = crate::provider::PropertyBinaryXidContinueV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_XID_CONTINUE_V1;
const NAME: &'static [u8] = "XID_Continue".as_bytes();
const SHORT_NAME: &'static [u8] = "XIDC".as_bytes();
}make_binary_property! {
2817 name: "XID_Continue";
2818 short_name: "XIDC";
2819 ident: XidContinue;
2820 data_marker: crate::provider::PropertyBinaryXidContinueV1;
2821 singleton: SINGLETON_PROPERTY_BINARY_XID_CONTINUE_V1;
2822 }
2843
2844#[doc = r" Characters that can begin an identifier."]
#[doc = r""]
#[doc = r" See [`Unicode"]
#[doc =
r" Standard Annex #31`](https://www.unicode.org/reports/tr31/tr31-35.html) for more"]
#[doc = r" details."]
#[doc = r""]
#[doc = r" # Example"]
#[doc = r""]
#[doc = r" ```"]
#[doc = r" use icu::properties::CodePointSetData;"]
#[doc = r" use icu::properties::props::XidStart;"]
#[doc = r""]
#[doc = r" let xid_start = CodePointSetData::new::<XidStart>();"]
#[doc = r""]
#[doc = r" assert!(xid_start.contains('x'));"]
#[doc = r" assert!(!xid_start.contains('1'));"]
#[doc = r" assert!(!xid_start.contains('_'));"]
#[doc = r" assert!(xid_start.contains('ߝ')); // U+07DD NKO LETTER FA"]
#[doc =
r" assert!(!xid_start.contains('ⓧ')); // U+24E7 CIRCLED LATIN SMALL LETTER X"]
#[doc =
r" assert!(!xid_start.contains('\u{FC5E}')); // ARABIC LIGATURE SHADDA WITH DAMMATAN ISOLATED FORM"]
#[doc = r" ```"]
#[non_exhaustive]
pub struct XidStart;
#[automatically_derived]
impl ::core::fmt::Debug for XidStart {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "XidStart")
}
}
#[allow(deprecated)]
impl crate::private::Sealed for XidStart { }
#[allow(deprecated)]
impl BinaryProperty for XidStart {
type DataMarker = crate::provider::PropertyBinaryXidStartV1;
const SINGLETON: &'static crate::provider::PropertyCodePointSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_XID_START_V1;
const NAME: &'static [u8] = "XID_Start".as_bytes();
const SHORT_NAME: &'static [u8] = "XIDS".as_bytes();
}make_binary_property! {
2845 name: "XID_Start";
2846 short_name: "XIDS";
2847 ident: XidStart;
2848 data_marker: crate::provider::PropertyBinaryXidStartV1;
2849 singleton: SINGLETON_PROPERTY_BINARY_XID_START_V1;
2850 }
2872
2873pub use crate::emoji::EmojiSet;
2874
2875macro_rules! make_emoji_set {
2876 (
2877 name: $name:literal;
2878 short_name: $short_name:literal;
2879 ident: $ident:ident;
2880 data_marker: $data_marker:ty;
2881 singleton: $singleton:ident;
2882 $(#[$doc:meta])+
2883 ) => {
2884 $(#[$doc])+
2885 #[derive(Debug)]
2886 #[non_exhaustive]
2887 pub struct $ident;
2888
2889 impl crate::private::Sealed for $ident {}
2890
2891 impl EmojiSet for $ident {
2892 type DataMarker = $data_marker;
2893 #[cfg(feature = "compiled_data")]
2894 const SINGLETON: &'static crate::provider::PropertyUnicodeSet<'static> =
2895 &crate::provider::Baked::$singleton;
2896 const NAME: &'static [u8] = $name.as_bytes();
2897 const SHORT_NAME: &'static [u8] = $short_name.as_bytes();
2898 }
2899 }
2900}
2901
2902#[doc =
r" Characters and character sequences intended for general-purpose, independent, direct input."]
#[doc = r""]
#[doc =
r" See [`Unicode Technical Standard #51`](https://unicode.org/reports/tr51/) for more"]
#[doc = r" details."]
#[doc = r""]
#[doc = r" # Example"]
#[doc = r""]
#[doc = r" ```"]
#[doc = r" use icu::properties::EmojiSetData;"]
#[doc = r" use icu::properties::props::BasicEmoji;"]
#[doc = r""]
#[doc = r" let basic_emoji = EmojiSetData::new::<BasicEmoji>();"]
#[doc = r""]
#[doc = r" assert!(!basic_emoji.contains('\u{0020}'));"]
#[doc = r" assert!(!basic_emoji.contains('\n'));"]
#[doc = r" assert!(basic_emoji.contains('🦃')); // U+1F983 TURKEY"]
#[doc = r#" assert!(basic_emoji.contains_str("\u{1F983}"));"#]
#[doc =
r#" assert!(basic_emoji.contains_str("\u{1F6E4}\u{FE0F}")); // railway track"#]
#[doc =
r#" assert!(!basic_emoji.contains_str("\u{0033}\u{FE0F}\u{20E3}")); // Emoji_Keycap_Sequence, keycap 3"#]
#[doc = r" ```"]
#[non_exhaustive]
pub struct BasicEmoji;
#[automatically_derived]
impl ::core::fmt::Debug for BasicEmoji {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f, "BasicEmoji")
}
}
impl crate::private::Sealed for BasicEmoji {}
impl EmojiSet for BasicEmoji {
type DataMarker = crate::provider::PropertyBinaryBasicEmojiV1;
const SINGLETON: &'static crate::provider::PropertyUnicodeSet<'static> =
&crate::provider::Baked::SINGLETON_PROPERTY_BINARY_BASIC_EMOJI_V1;
const NAME: &'static [u8] = "Basic_Emoji".as_bytes();
const SHORT_NAME: &'static [u8] = "Basic_Emoji".as_bytes();
}make_emoji_set! {
2903 name: "Basic_Emoji";
2904 short_name: "Basic_Emoji";
2905 ident: BasicEmoji;
2906 data_marker: crate::provider::PropertyBinaryBasicEmojiV1;
2907 singleton: SINGLETON_PROPERTY_BINARY_BASIC_EMOJI_V1;
2908 }