pub struct UnicodeProperty(pub u32);
Expand description
This type can represent any Unicode property.
This is intended to be used in situations where the exact unicode property needed is only known at runtime, for example in regex engines.
The values are intended to be identical to ICU4C’s UProperty enum
Tuple Fields§
§0: u32
Implementations§
Source§impl UnicodeProperty
impl UnicodeProperty
Sourcepub const Alphabetic: Self
pub const Alphabetic: Self
Binary property Alphabetic
Sourcepub const AsciiHexDigit: Self
pub const AsciiHexDigit: Self
Binary property ASCII_Hex_Digit
Sourcepub const BidiControl: Self
pub const BidiControl: Self
Binary property Bidi_Control
Sourcepub const BidiMirrored: Self
pub const BidiMirrored: Self
Binary property Bidi_Mirrored
Sourcepub const DefaultIgnorableCodePoint: Self
pub const DefaultIgnorableCodePoint: Self
Binary property Default_Ignorable_Code_Point
Sourcepub const Deprecated: Self
pub const Deprecated: Self
Binary property Deprecated
Sourcepub const FullCompositionExclusion: Self
pub const FullCompositionExclusion: Self
Binary property Full_Composition_Exclusion
Sourcepub const GraphemeBase: Self
pub const GraphemeBase: Self
Binary property Grapheme_Base
Sourcepub const GraphemeExtend: Self
pub const GraphemeExtend: Self
Binary property Grapheme_Extend
Sourcepub const GraphemeLink: Self
pub const GraphemeLink: Self
Binary property Grapheme_Link
Sourcepub const IdContinue: Self
pub const IdContinue: Self
Binary property ID_Continue
Sourcepub const Ideographic: Self
pub const Ideographic: Self
Binary property Ideographic
Sourcepub const IdsBinaryOperator: Self
pub const IdsBinaryOperator: Self
Binary property IDS_Binary_Operator
Sourcepub const IdsTrinaryOperator: Self
pub const IdsTrinaryOperator: Self
Binary property IDS_Trinary_Operator
Sourcepub const JoinControl: Self
pub const JoinControl: Self
Binary property Join_Control
Sourcepub const LogicalOrderException: Self
pub const LogicalOrderException: Self
Binary property Logical_Order_Exception
Sourcepub const NoncharacterCodePoint: Self
pub const NoncharacterCodePoint: Self
Binary property Noncharacter_Code_Point
Sourcepub const QuotationMark: Self
pub const QuotationMark: Self
Binary property Quotation_Mark
Sourcepub const SoftDotted: Self
pub const SoftDotted: Self
Binary property Soft_Dotted
Sourcepub const TerminalPunctuation: Self
pub const TerminalPunctuation: Self
Binary property Terminal_Punctuation
Sourcepub const UnifiedIdeograph: Self
pub const UnifiedIdeograph: Self
Binary property Unified_Ideograph
Sourcepub const WhiteSpace: Self
pub const WhiteSpace: Self
Binary property White_Space
Sourcepub const XidContinue: Self
pub const XidContinue: Self
Binary property XID_Continue
Sourcepub const CaseSensitive: Self
pub const CaseSensitive: Self
Binary property Case_Sensitive
Sourcepub const SentenceTerminal: Self
pub const SentenceTerminal: Self
Binary property Sentence_Terminal
Sourcepub const VariationSelector: Self
pub const VariationSelector: Self
Binary property Variation_Selector
Sourcepub const SegmentStarter: Self
pub const SegmentStarter: Self
Binary property Segment_Starter
Sourcepub const PatternSyntax: Self
pub const PatternSyntax: Self
Binary property Pattern_Syntax
Sourcepub const PatternWhiteSpace: Self
pub const PatternWhiteSpace: Self
Binary property Pattern_White_Space
Sourcepub const CaseIgnorable: Self
pub const CaseIgnorable: Self
Binary property Case_Ignorable
Sourcepub const ChangesWhenLowercased: Self
pub const ChangesWhenLowercased: Self
Binary property Changes_When_Lowercased
Sourcepub const ChangesWhenUppercased: Self
pub const ChangesWhenUppercased: Self
Binary property Changes_When_Uppercased
Sourcepub const ChangesWhenTitlecased: Self
pub const ChangesWhenTitlecased: Self
Binary property Changes_When_Titlecased
Sourcepub const ChangesWhenCasefolded: Self
pub const ChangesWhenCasefolded: Self
Binary property Changes_When_Casefolded
Sourcepub const ChangesWhenCasemapped: Self
pub const ChangesWhenCasemapped: Self
Binary property Changes_When_Casemapped
Sourcepub const ChangesWhenNfkcCasefolded: Self
pub const ChangesWhenNfkcCasefolded: Self
Binary property Changes_When_NFKC_Casefolded
Sourcepub const EmojiPresentation: Self
pub const EmojiPresentation: Self
Binary property Emoji_Presentation
Sourcepub const EmojiModifier: Self
pub const EmojiModifier: Self
Binary property Emoji_Modifier
Sourcepub const EmojiModifierBase: Self
pub const EmojiModifierBase: Self
Binary property Emoji_Modifier_Base
Sourcepub const EmojiComponent: Self
pub const EmojiComponent: Self
Binary property Emoji_Component
Sourcepub const RegionalIndicator: Self
pub const RegionalIndicator: Self
Binary property Regional_Indicator
Sourcepub const PrependedConcatenationMark: Self
pub const PrependedConcatenationMark: Self
Binary property Prepended_Concatenation_Mark
Sourcepub const ExtendedPictographic: Self
pub const ExtendedPictographic: Self
Binary property Extended_Pictographic
Sourcepub const BasicEmoji: Self
pub const BasicEmoji: Self
Binary property Basic_Emoji
Sourcepub const EmojiKeycapSequence: Self
pub const EmojiKeycapSequence: Self
Binary property Emoji_Keycap_Sequence
Sourcepub const RgiEmojiModifierSequence: Self
pub const RgiEmojiModifierSequence: Self
Binary property RGI_Emoji_Modifier_Sequence
Sourcepub const RgiEmojiFlagSequence: Self
pub const RgiEmojiFlagSequence: Self
Binary property RGI_Emoji_Flag_Sequence
Sourcepub const RgiEmojiTagSequence: Self
pub const RgiEmojiTagSequence: Self
Binary property RGI_Emoji_Tag_Sequence
Sourcepub const RgiEmojiZWJSequence: Self
pub const RgiEmojiZWJSequence: Self
Binary property RGI_Emoji_ZWJ_Sequence
const BINARY_MAX: Self = Self::RgiEmoji
Sourcepub const CombiningClass: Self
pub const CombiningClass: Self
Enumerated property Canonical_Combining_Class
Sourcepub const DecompositionType: Self
pub const DecompositionType: Self
Enumerated property Decomposition_Type
Sourcepub const EastAsianWidth: Self
pub const EastAsianWidth: Self
Enumerated property East_Asian_Width
Sourcepub const GeneralCategory: Self
pub const GeneralCategory: Self
Enumerated property General_Category
Sourcepub const JoiningGroup: Self
pub const JoiningGroup: Self
Enumerated property Joining_Group
Sourcepub const JoiningType: Self
pub const JoiningType: Self
Enumerated property Joining_Type
Sourcepub const NumericType: Self
pub const NumericType: Self
Enumerated property Numeric_Type
Sourcepub const HangulSyllableType: Self
pub const HangulSyllableType: Self
Enumerated property Hangul_Syllable_Type
Sourcepub const NFDQuickCheck: Self
pub const NFDQuickCheck: Self
Enumerated property NFD_Quick_Check
Sourcepub const NFKDQuickCheck: Self
pub const NFKDQuickCheck: Self
Enumerated property NFKD_Quick_Check
Sourcepub const NFCQuickCheck: Self
pub const NFCQuickCheck: Self
Enumerated property NFC_Quick_Check
Sourcepub const NFKCQuickCheck: Self
pub const NFKCQuickCheck: Self
Enumerated property NFKC_Quick_Check
Sourcepub const LeadCanonicalCombiningClass: Self
pub const LeadCanonicalCombiningClass: Self
Enumerated property Lead_Canonical_Combining_Class
Sourcepub const TrailCanonicalCombiningClass: Self
pub const TrailCanonicalCombiningClass: Self
Enumerated property Trail_Canonical_Combining_Class
Sourcepub const GraphemeClusterBreak: Self
pub const GraphemeClusterBreak: Self
Enumerated property Grapheme_Cluster_Break
Sourcepub const SentenceBreak: Self
pub const SentenceBreak: Self
Enumerated property Sentence_Break
Sourcepub const BidiPairedBracketType: Self
pub const BidiPairedBracketType: Self
Enumerated property Bidi_Paired_Bracket_Type
Sourcepub const IndicPositionalCategory: Self
pub const IndicPositionalCategory: Self
Enumerated property Indic_Positional_Category
Sourcepub const IndicSyllabicCategory: Self
pub const IndicSyllabicCategory: Self
Enumerated property Indic_Syllabic_Category
Sourcepub const VerticalOrientation: Self
pub const VerticalOrientation: Self
Enumerated property Vertical_Orientation
const ENUMERATED_MAX: Self = Self::VerticalOrientation
Sourcepub const GeneralCategoryMask: Self
pub const GeneralCategoryMask: Self
Mask property General_Category_Mask
Sourcepub const NumericValue: Self
pub const NumericValue: Self
Double property Numeric_Value
Sourcepub const BidiMirroringGlyph: Self
pub const BidiMirroringGlyph: Self
String property Bidi_Mirroring_Glyph
Sourcepub const CaseFolding: Self
pub const CaseFolding: Self
String property Case_Folding
Sourcepub const ISOComment: Self
pub const ISOComment: Self
String property ISO_Comment
Sourcepub const LowercaseMapping: Self
pub const LowercaseMapping: Self
String property Lowercase_Mapping
Sourcepub const SimpleCaseFolding: Self
pub const SimpleCaseFolding: Self
String property Simple_Case_Folding
Sourcepub const SimpleLowercaseMapping: Self
pub const SimpleLowercaseMapping: Self
String property Simple_Lowercase_Mapping
Sourcepub const SimpleTitlecaseMapping: Self
pub const SimpleTitlecaseMapping: Self
String property Simple_Titlecase_Mapping
Sourcepub const SimpleUppercaseMapping: Self
pub const SimpleUppercaseMapping: Self
String property Simple_Uppercase_Mapping
Sourcepub const TitlecaseMapping: Self
pub const TitlecaseMapping: Self
String property Titlecase_Mapping
Sourcepub const Unicode1_Name: Self
pub const Unicode1_Name: Self
String property Unicode_1_Name
Sourcepub const UppercaseMapping: Self
pub const UppercaseMapping: Self
String property Uppercase_Mapping
Sourcepub const BidiPairedBracket: Self
pub const BidiPairedBracket: Self
String property Bidi_Paired_Bracket
const STRING_MAX: Self = Self::BidiPairedBracket
Sourcepub const ScriptExtensions: Self
pub const ScriptExtensions: Self
Misc property Script_Extensions
Source§impl UnicodeProperty
impl UnicodeProperty
Sourcepub fn parse_ecma262_name(name: &str) -> Option<Self>
pub fn parse_ecma262_name(name: &str) -> Option<Self>
Given a property name (long, short, or alias), returns the corresponding UnicodeProperty
value for it provided it belongs to the subset relevant for ECMA262 regexes
Returns none if the name does not match any of the names in this subset. Performs strict matching of names.
If using this to implement an ECMA262-compliant regex engine, please note these caveats:
- This only returns binary and enumerated properties, as well as
Self::ScriptExtensions
. Lookup can be performed sufficiently with [Self::load_ecma262_binary_property_unstable()
],maps::load_general_category()
,maps::load_script()
andscript::load_script_with_extensions_unstable()
. - This does not handle the
Any
,Assigned
, orASCII
pseudoproperties, since they are not defined as properties.Any
can be expressed as the range[\u{0}-\u{10FFFF}]
Assigned
can be expressed as the inverse of the setgc=Cn
(i.e.,\P{gc=Cn}
).ASCII
can be expressed as the range[\u{0}-\u{7F}]
- ECMA262 regexes transparently allow
General_Category_Mask
values forGeneralCategory
. This method does not returnSelf::GeneralCategoryMask
, and instead relies on the caller to use mask-related lookup functions where necessary. - ECMA262 regexes allow treating
General_Category
(andgcm
) values as binary properties, e.g. you can do things like\p{Lu}
as shortform for\p{gc=Lu}
. This method does not do so since these are property values, not properties, but you can useGeneralCategory::get_name_to_enum_mapper()
orGeneralCategoryGroup::get_name_to_enum_mapper()
to handle this.
Trait Implementations§
Source§impl Clone for UnicodeProperty
impl Clone for UnicodeProperty
Source§fn clone(&self) -> UnicodeProperty
fn clone(&self) -> UnicodeProperty
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more