@@ -19,6 +19,46 @@ pub use tables::GeneralCategory;
1919/// that this version of unicode-general-category was generated from.
2020pub const UNICODE_VERSION : ( u64 , u64 , u64 ) = ( 16 , 0 , 0 ) ;
2121
22+ impl GeneralCategory {
23+ /// Returns the general category abbreviation.
24+ /// See [Unicode General Category Values](https://www.unicode.org/reports/tr44/tr44-30.html#General_Category_Values)
25+ /// for the list of all general categories.
26+ pub fn abbreviation ( & self ) -> & ' static str {
27+ match self {
28+ GeneralCategory :: ClosePunctuation => "Pe" ,
29+ GeneralCategory :: ConnectorPunctuation => "Pc" ,
30+ GeneralCategory :: Control => "Cc" ,
31+ GeneralCategory :: CurrencySymbol => "Sc" ,
32+ GeneralCategory :: DashPunctuation => "Pd" ,
33+ GeneralCategory :: DecimalNumber => "Nd" ,
34+ GeneralCategory :: EnclosingMark => "Me" ,
35+ GeneralCategory :: FinalPunctuation => "Pf" ,
36+ GeneralCategory :: Format => "Cf" ,
37+ GeneralCategory :: InitialPunctuation => "Pi" ,
38+ GeneralCategory :: LetterNumber => "Nl" ,
39+ GeneralCategory :: LineSeparator => "Zl" ,
40+ GeneralCategory :: LowercaseLetter => "Ll" ,
41+ GeneralCategory :: MathSymbol => "Sm" ,
42+ GeneralCategory :: ModifierLetter => "Lm" ,
43+ GeneralCategory :: ModifierSymbol => "Sk" ,
44+ GeneralCategory :: NonspacingMark => "Mn" ,
45+ GeneralCategory :: OpenPunctuation => "Ps" ,
46+ GeneralCategory :: OtherLetter => "Lo" ,
47+ GeneralCategory :: OtherNumber => "No" ,
48+ GeneralCategory :: OtherPunctuation => "Po" ,
49+ GeneralCategory :: OtherSymbol => "So" ,
50+ GeneralCategory :: ParagraphSeparator => "Zp" ,
51+ GeneralCategory :: PrivateUse => "Co" ,
52+ GeneralCategory :: SpaceSeparator => "Zs" ,
53+ GeneralCategory :: SpacingMark => "Mc" ,
54+ GeneralCategory :: Surrogate => "Cs" ,
55+ GeneralCategory :: TitlecaseLetter => "Lt" ,
56+ GeneralCategory :: Unassigned => "Cn" ,
57+ GeneralCategory :: UppercaseLetter => "Lu" ,
58+ }
59+ }
60+ }
61+
2262#[ cfg( test) ]
2363mod test {
2464 use super :: { get_general_category, GeneralCategory } ;
0 commit comments