Enum icu_properties::GeneralCategory
source · #[repr(u8)]pub enum GeneralCategory {
Show 30 variants
Unassigned = 0,
UppercaseLetter = 1,
LowercaseLetter = 2,
TitlecaseLetter = 3,
ModifierLetter = 4,
OtherLetter = 5,
NonspacingMark = 6,
SpacingMark = 8,
EnclosingMark = 7,
DecimalNumber = 9,
LetterNumber = 10,
OtherNumber = 11,
SpaceSeparator = 12,
LineSeparator = 13,
ParagraphSeparator = 14,
Control = 15,
Format = 16,
PrivateUse = 17,
Surrogate = 18,
DashPunctuation = 19,
OpenPunctuation = 20,
ClosePunctuation = 21,
ConnectorPunctuation = 22,
InitialPunctuation = 28,
FinalPunctuation = 29,
OtherPunctuation = 23,
MathSymbol = 24,
CurrencySymbol = 25,
ModifierSymbol = 26,
OtherSymbol = 27,
}
Expand description
Enumerated property General_Category.
General_Category specifies the most general classification of a code point, usually determined based on the primary characteristic of the assigned character. For example, is the character a letter, a mark, a number, punctuation, or a symbol, and if so, of what type?
GeneralCategory only supports specific subcategories (eg UppercaseLetter
).
It does not support grouped categories (eg Letter
). For grouped categories, use GeneralCategoryGroup
.
Variants§
Unassigned = 0
(Cn
) A reserved unassigned code point or a noncharacter
UppercaseLetter = 1
(Lu
) An uppercase letter
LowercaseLetter = 2
(Ll
) A lowercase letter
TitlecaseLetter = 3
(Lt
) A digraphic letter, with first part uppercase
ModifierLetter = 4
(Lm
) A modifier letter
OtherLetter = 5
(Lo
) Other letters, including syllables and ideographs
NonspacingMark = 6
(Mn
) A nonspacing combining mark (zero advance width)
SpacingMark = 8
(Mc
) A spacing combining mark (positive advance width)
EnclosingMark = 7
(Me
) An enclosing combining mark
DecimalNumber = 9
(Nd
) A decimal digit
LetterNumber = 10
(Nl
) A letterlike numeric character
OtherNumber = 11
(No
) A numeric character of other type
SpaceSeparator = 12
(Zs
) A space character (of various non-zero widths)
LineSeparator = 13
(Zl
) U+2028 LINE SEPARATOR only
ParagraphSeparator = 14
(Zp
) U+2029 PARAGRAPH SEPARATOR only
Control = 15
(Cc
) A C0 or C1 control code
Format = 16
(Cf
) A format control character
PrivateUse = 17
(Co
) A private-use character
Surrogate = 18
(Cs
) A surrogate code point
DashPunctuation = 19
(Pd
) A dash or hyphen punctuation mark
OpenPunctuation = 20
(Ps
) An opening punctuation mark (of a pair)
ClosePunctuation = 21
(Pe
) A closing punctuation mark (of a pair)
ConnectorPunctuation = 22
(Pc
) A connecting punctuation mark, like a tie
InitialPunctuation = 28
(Pi
) An initial quotation mark
FinalPunctuation = 29
(Pf
) A final quotation mark
OtherPunctuation = 23
(Po
) A punctuation mark of other type
MathSymbol = 24
(Sm
) A symbol of mathematical use
CurrencySymbol = 25
(Sc
) A currency sign
ModifierSymbol = 26
(Sk
) A non-letterlike modifier symbol
OtherSymbol = 27
(So
) A symbol of other type
Implementations§
source§impl GeneralCategory
impl GeneralCategory
sourcepub(crate) fn new_from_u8(value: u8) -> Option<Self>
pub(crate) fn new_from_u8(value: u8) -> Option<Self>
Attempt to construct the value from its corresponding integer,
returning None
if not possible
source§impl GeneralCategory
impl GeneralCategory
sourcepub const fn name_to_enum_mapper() -> PropertyValueNameToEnumMapperBorrowed<'static, GeneralCategory>
pub const fn name_to_enum_mapper() -> PropertyValueNameToEnumMapperBorrowed<'static, GeneralCategory>
Return a PropertyValueNameToEnumMapper
, capable of looking up values
from strings for the General_Category
enumerated property.
✨ Enabled with the compiled_data
Cargo feature.
§Example
use icu::properties::GeneralCategory;
let lookup = GeneralCategory::name_to_enum_mapper();
// short name for value
assert_eq!(lookup.get_strict("Lu"), Some(GeneralCategory::UppercaseLetter));
assert_eq!(lookup.get_strict("Pd"), Some(GeneralCategory::DashPunctuation));
// long name for value
assert_eq!(lookup.get_strict("Uppercase_Letter"), Some(GeneralCategory::UppercaseLetter));
assert_eq!(lookup.get_strict("Dash_Punctuation"), Some(GeneralCategory::DashPunctuation));
// name has incorrect casing
assert_eq!(lookup.get_strict("dashpunctuation"), None);
// loose matching of name
assert_eq!(lookup.get_loose("dash-punctuation"), Some(GeneralCategory::DashPunctuation));
// fake property
assert_eq!(lookup.get_loose("Animated_Gif"), None);
sourcepub fn get_name_to_enum_mapper(
provider: &(impl DataProvider<GeneralCategoryNameToValueV1Marker> + ?Sized),
) -> Result<PropertyValueNameToEnumMapper<GeneralCategory>, PropertiesError>
pub fn get_name_to_enum_mapper( provider: &(impl DataProvider<GeneralCategoryNameToValueV1Marker> + ?Sized), ) -> Result<PropertyValueNameToEnumMapper<GeneralCategory>, PropertiesError>
A version of GeneralCategory::name_to_enum_mapper()
that uses custom data provided by a DataProvider
.
sourcepub const fn enum_to_short_name_mapper() -> PropertyEnumToValueNameLinearMapperBorrowed<'static, GeneralCategory>
pub const fn enum_to_short_name_mapper() -> PropertyEnumToValueNameLinearMapperBorrowed<'static, GeneralCategory>
Return a PropertyEnumToValueNameLinearMapper
, capable of looking up short names
for values of the General_Category
enumerated property.
✨ Enabled with the compiled_data
Cargo feature.
§Example
use icu::properties::GeneralCategory;
let lookup = GeneralCategory::enum_to_short_name_mapper();
assert_eq!(lookup.get(GeneralCategory::UppercaseLetter), Some("Lu"));
assert_eq!(lookup.get(GeneralCategory::DashPunctuation), Some("Pd"));
assert_eq!(lookup.get(GeneralCategory::FinalPunctuation), Some("Pf"));
sourcepub fn get_enum_to_short_name_mapper(
provider: &(impl DataProvider<GeneralCategoryValueToShortNameV1Marker> + ?Sized),
) -> Result<PropertyEnumToValueNameLinearMapper<GeneralCategory>, PropertiesError>
pub fn get_enum_to_short_name_mapper( provider: &(impl DataProvider<GeneralCategoryValueToShortNameV1Marker> + ?Sized), ) -> Result<PropertyEnumToValueNameLinearMapper<GeneralCategory>, PropertiesError>
A version of GeneralCategory::enum_to_short_name_mapper()
that uses custom data provided by a DataProvider
.
sourcepub const fn enum_to_long_name_mapper() -> PropertyEnumToValueNameLinearMapperBorrowed<'static, GeneralCategory>
pub const fn enum_to_long_name_mapper() -> PropertyEnumToValueNameLinearMapperBorrowed<'static, GeneralCategory>
Return a PropertyEnumToValueNameLinearMapper
, capable of looking up long names
for values of the General_Category
enumerated property.
✨ Enabled with the compiled_data
Cargo feature.
§Example
use icu::properties::GeneralCategory;
let lookup = GeneralCategory::enum_to_long_name_mapper();
assert_eq!(lookup.get(GeneralCategory::UppercaseLetter), Some("Uppercase_Letter"));
assert_eq!(lookup.get(GeneralCategory::DashPunctuation), Some("Dash_Punctuation"));
assert_eq!(lookup.get(GeneralCategory::FinalPunctuation), Some("Final_Punctuation"));
sourcepub fn get_enum_to_long_name_mapper(
provider: &(impl DataProvider<GeneralCategoryValueToLongNameV1Marker> + ?Sized),
) -> Result<PropertyEnumToValueNameLinearMapper<GeneralCategory>, PropertiesError>
pub fn get_enum_to_long_name_mapper( provider: &(impl DataProvider<GeneralCategoryValueToLongNameV1Marker> + ?Sized), ) -> Result<PropertyEnumToValueNameLinearMapper<GeneralCategory>, PropertiesError>
A version of GeneralCategory::enum_to_long_name_mapper()
that uses custom data provided by a DataProvider
.
Trait Implementations§
source§impl AsULE for GeneralCategory
impl AsULE for GeneralCategory
§type ULE = GeneralCategoryULE
type ULE = GeneralCategoryULE
Self
. Read moresource§fn to_unaligned(self) -> Self::ULE
fn to_unaligned(self) -> Self::ULE
source§fn from_unaligned(other: Self::ULE) -> Self
fn from_unaligned(other: Self::ULE) -> Self
source§impl Clone for GeneralCategory
impl Clone for GeneralCategory
source§fn clone(&self) -> GeneralCategory
fn clone(&self) -> GeneralCategory
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for GeneralCategory
impl Debug for GeneralCategory
source§impl From<GeneralCategory> for GeneralCategoryGroup
impl From<GeneralCategory> for GeneralCategoryGroup
source§fn from(subcategory: GeneralCategory) -> Self
fn from(subcategory: GeneralCategory) -> Self
source§impl Hash for GeneralCategory
impl Hash for GeneralCategory
source§impl Ord for GeneralCategory
impl Ord for GeneralCategory
source§fn cmp(&self, other: &GeneralCategory) -> Ordering
fn cmp(&self, other: &GeneralCategory) -> Ordering
1.21.0 · source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
source§impl PartialEq for GeneralCategory
impl PartialEq for GeneralCategory
source§fn eq(&self, other: &GeneralCategory) -> bool
fn eq(&self, other: &GeneralCategory) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl PartialOrd for GeneralCategory
impl PartialOrd for GeneralCategory
source§fn partial_cmp(&self, other: &GeneralCategory) -> Option<Ordering>
fn partial_cmp(&self, other: &GeneralCategory) -> Option<Ordering>
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self
and other
) and is used by the <=
operator. Read moresource§impl TrieValue for GeneralCategory
impl TrieValue for GeneralCategory
§type TryFromU32Error = &'static str
type TryFromU32Error = &'static str
source§fn try_from_u32(i: u32) -> Result<Self, Self::TryFromU32Error>
fn try_from_u32(i: u32) -> Result<Self, Self::TryFromU32Error>
u32
first.source§impl TryFrom<u8> for GeneralCategory
impl TryFrom<u8> for GeneralCategory
source§fn try_from(val: u8) -> Result<Self, GeneralCategoryTryFromError>
fn try_from(val: u8) -> Result<Self, GeneralCategoryTryFromError>
Construct this GeneralCategory
from an integer, returning
an error if it is out of bounds
§type Error = GeneralCategoryTryFromError
type Error = GeneralCategoryTryFromError
source§impl<'a> ZeroMapKV<'a> for GeneralCategory
impl<'a> ZeroMapKV<'a> for GeneralCategory
§type Container = ZeroVec<'a, GeneralCategory>
type Container = ZeroVec<'a, GeneralCategory>
ZeroVec
or VarZeroVec
.type Slice = ZeroSlice<GeneralCategory>
§type GetType = GeneralCategoryULE
type GetType = GeneralCategoryULE
Container::get()
Read more§type OwnedType = GeneralCategory
type OwnedType = GeneralCategory
Container::replace()
and Container::remove()
,
also used during deserialization. If Self
is human readable serialized,
deserializing to Self::OwnedType
should produce the same value once
passed through Self::owned_as_self()
Read more