#[diplomat::bridge]
#[diplomat::abi_rename = "icu4x_{0}_mv1"]
#[diplomat::attr(auto, namespace = "icu4x")]
pub mod ffi {
#[diplomat::rust_link(icu::properties::props::BidiClass, Struct)]
#[diplomat::enum_convert(icu_properties::props::BidiClass, needs_wildcard)]
pub enum BidiClass {
#[diplomat::rust_link(icu::properties::props::BidiClass::LeftToRight, EnumVariant)]
LeftToRight = 0,
#[diplomat::rust_link(icu::properties::props::BidiClass::RightToLeft, EnumVariant)]
RightToLeft = 1,
#[diplomat::rust_link(icu::properties::props::BidiClass::EuropeanNumber, EnumVariant)]
EuropeanNumber = 2,
#[diplomat::rust_link(icu::properties::props::BidiClass::EuropeanSeparator, EnumVariant)]
EuropeanSeparator = 3,
#[diplomat::rust_link(icu::properties::props::BidiClass::EuropeanTerminator, EnumVariant)]
EuropeanTerminator = 4,
#[diplomat::rust_link(icu::properties::props::BidiClass::ArabicNumber, EnumVariant)]
ArabicNumber = 5,
#[diplomat::rust_link(icu::properties::props::BidiClass::CommonSeparator, EnumVariant)]
CommonSeparator = 6,
#[diplomat::rust_link(icu::properties::props::BidiClass::ParagraphSeparator, EnumVariant)]
ParagraphSeparator = 7,
#[diplomat::rust_link(icu::properties::props::BidiClass::SegmentSeparator, EnumVariant)]
SegmentSeparator = 8,
#[diplomat::rust_link(icu::properties::props::BidiClass::WhiteSpace, EnumVariant)]
WhiteSpace = 9,
#[diplomat::rust_link(icu::properties::props::BidiClass::OtherNeutral, EnumVariant)]
OtherNeutral = 10,
#[diplomat::rust_link(
icu::properties::props::BidiClass::LeftToRightEmbedding,
EnumVariant
)]
LeftToRightEmbedding = 11,
#[diplomat::rust_link(icu::properties::props::BidiClass::LeftToRightOverride, EnumVariant)]
LeftToRightOverride = 12,
#[diplomat::rust_link(icu::properties::props::BidiClass::ArabicLetter, EnumVariant)]
ArabicLetter = 13,
#[diplomat::rust_link(
icu::properties::props::BidiClass::RightToLeftEmbedding,
EnumVariant
)]
RightToLeftEmbedding = 14,
#[diplomat::rust_link(icu::properties::props::BidiClass::RightToLeftOverride, EnumVariant)]
RightToLeftOverride = 15,
#[diplomat::rust_link(
icu::properties::props::BidiClass::PopDirectionalFormat,
EnumVariant
)]
PopDirectionalFormat = 16,
#[diplomat::rust_link(icu::properties::props::BidiClass::NonspacingMark, EnumVariant)]
NonspacingMark = 17,
#[diplomat::rust_link(icu::properties::props::BidiClass::BoundaryNeutral, EnumVariant)]
BoundaryNeutral = 18,
#[diplomat::rust_link(icu::properties::props::BidiClass::FirstStrongIsolate, EnumVariant)]
FirstStrongIsolate = 19,
#[diplomat::rust_link(icu::properties::props::BidiClass::LeftToRightIsolate, EnumVariant)]
LeftToRightIsolate = 20,
#[diplomat::rust_link(icu::properties::props::BidiClass::RightToLeftIsolate, EnumVariant)]
RightToLeftIsolate = 21,
#[diplomat::rust_link(
icu::properties::props::BidiClass::PopDirectionalIsolate,
EnumVariant
)]
PopDirectionalIsolate = 22,
}
impl BidiClass {
pub fn to_integer(self) -> u8 {
self as u8
}
pub fn from_integer(other: u8) -> Option<Self> {
Some(match other {
0 => Self::LeftToRight,
1 => Self::RightToLeft,
2 => Self::EuropeanNumber,
3 => Self::EuropeanSeparator,
4 => Self::EuropeanTerminator,
5 => Self::ArabicNumber,
6 => Self::CommonSeparator,
7 => Self::ParagraphSeparator,
8 => Self::SegmentSeparator,
9 => Self::WhiteSpace,
10 => Self::OtherNeutral,
11 => Self::LeftToRightEmbedding,
12 => Self::LeftToRightOverride,
13 => Self::ArabicLetter,
14 => Self::RightToLeftEmbedding,
15 => Self::RightToLeftOverride,
16 => Self::PopDirectionalFormat,
17 => Self::NonspacingMark,
18 => Self::BoundaryNeutral,
19 => Self::FirstStrongIsolate,
20 => Self::LeftToRightIsolate,
21 => Self::RightToLeftIsolate,
22 => Self::PopDirectionalIsolate,
_ => return None,
})
}
}
#[diplomat::rust_link(icu::properties::props::Script, Struct)]
#[diplomat::enum_convert(icu_properties::props::Script, needs_wildcard)]
pub enum Script {
#[diplomat::rust_link(icu::properties::props::Script::Adlam, EnumVariant)]
Adlam = 167,
#[diplomat::rust_link(icu::properties::props::Script::Ahom, EnumVariant)]
Ahom = 161,
#[diplomat::rust_link(icu::properties::props::Script::AnatolianHieroglyphs, EnumVariant)]
AnatolianHieroglyphs = 156,
#[diplomat::rust_link(icu::properties::props::Script::Arabic, EnumVariant)]
Arabic = 2,
#[diplomat::rust_link(icu::properties::props::Script::Armenian, EnumVariant)]
Armenian = 3,
#[diplomat::rust_link(icu::properties::props::Script::Avestan, EnumVariant)]
Avestan = 117,
#[diplomat::rust_link(icu::properties::props::Script::Balinese, EnumVariant)]
Balinese = 62,
#[diplomat::rust_link(icu::properties::props::Script::Bamum, EnumVariant)]
Bamum = 130,
#[diplomat::rust_link(icu::properties::props::Script::BassaVah, EnumVariant)]
BassaVah = 134,
#[diplomat::rust_link(icu::properties::props::Script::Batak, EnumVariant)]
Batak = 63,
#[diplomat::rust_link(icu::properties::props::Script::Bengali, EnumVariant)]
Bengali = 4,
#[diplomat::rust_link(icu::properties::props::Script::Bhaiksuki, EnumVariant)]
Bhaiksuki = 168,
#[diplomat::rust_link(icu::properties::props::Script::Bopomofo, EnumVariant)]
Bopomofo = 5,
#[diplomat::rust_link(icu::properties::props::Script::Brahmi, EnumVariant)]
Brahmi = 65,
#[diplomat::rust_link(icu::properties::props::Script::Braille, EnumVariant)]
Braille = 46,
#[diplomat::rust_link(icu::properties::props::Script::Buginese, EnumVariant)]
Buginese = 55,
#[diplomat::rust_link(icu::properties::props::Script::Buhid, EnumVariant)]
Buhid = 44,
#[diplomat::rust_link(icu::properties::props::Script::CanadianAboriginal, EnumVariant)]
CanadianAboriginal = 40,
#[diplomat::rust_link(icu::properties::props::Script::Carian, EnumVariant)]
Carian = 104,
#[diplomat::rust_link(icu::properties::props::Script::CaucasianAlbanian, EnumVariant)]
CaucasianAlbanian = 159,
#[diplomat::rust_link(icu::properties::props::Script::Chakma, EnumVariant)]
Chakma = 118,
#[diplomat::rust_link(icu::properties::props::Script::Cham, EnumVariant)]
Cham = 66,
#[diplomat::rust_link(icu::properties::props::Script::Cherokee, EnumVariant)]
Cherokee = 6,
#[diplomat::rust_link(icu::properties::props::Script::Chorasmian, EnumVariant)]
Chorasmian = 189,
#[diplomat::rust_link(icu::properties::props::Script::Common, EnumVariant)]
Common = 0,
#[diplomat::rust_link(icu::properties::props::Script::Coptic, EnumVariant)]
Coptic = 7,
#[diplomat::rust_link(icu::properties::props::Script::Cuneiform, EnumVariant)]
Cuneiform = 101,
#[diplomat::rust_link(icu::properties::props::Script::Cypriot, EnumVariant)]
Cypriot = 47,
#[diplomat::rust_link(icu::properties::props::Script::CyproMinoan, EnumVariant)]
CyproMinoan = 193,
#[diplomat::rust_link(icu::properties::props::Script::Cyrillic, EnumVariant)]
Cyrillic = 8,
#[diplomat::rust_link(icu::properties::props::Script::Deseret, EnumVariant)]
Deseret = 9,
#[diplomat::rust_link(icu::properties::props::Script::Devanagari, EnumVariant)]
Devanagari = 10,
#[diplomat::rust_link(icu::properties::props::Script::DivesAkuru, EnumVariant)]
DivesAkuru = 190,
#[diplomat::rust_link(icu::properties::props::Script::Dogra, EnumVariant)]
Dogra = 178,
#[diplomat::rust_link(icu::properties::props::Script::Duployan, EnumVariant)]
Duployan = 135,
#[diplomat::rust_link(icu::properties::props::Script::EgyptianHieroglyphs, EnumVariant)]
EgyptianHieroglyphs = 71,
#[diplomat::rust_link(icu::properties::props::Script::Elbasan, EnumVariant)]
Elbasan = 136,
#[diplomat::rust_link(icu::properties::props::Script::Elymaic, EnumVariant)]
Elymaic = 185,
#[diplomat::rust_link(icu::properties::props::Script::Ethiopian, EnumVariant)]
Ethiopian = 11,
#[diplomat::rust_link(icu::properties::props::Script::Georgian, EnumVariant)]
Georgian = 12,
#[diplomat::rust_link(icu::properties::props::Script::Glagolitic, EnumVariant)]
Glagolitic = 56,
#[diplomat::rust_link(icu::properties::props::Script::Gothic, EnumVariant)]
Gothic = 13,
#[diplomat::rust_link(icu::properties::props::Script::Grantha, EnumVariant)]
Grantha = 137,
#[diplomat::rust_link(icu::properties::props::Script::Greek, EnumVariant)]
Greek = 14,
#[diplomat::rust_link(icu::properties::props::Script::Gujarati, EnumVariant)]
Gujarati = 15,
#[diplomat::rust_link(icu::properties::props::Script::GunjalaGondi, EnumVariant)]
GunjalaGondi = 179,
#[diplomat::rust_link(icu::properties::props::Script::Gurmukhi, EnumVariant)]
Gurmukhi = 16,
#[diplomat::rust_link(icu::properties::props::Script::Han, EnumVariant)]
Han = 17,
#[diplomat::rust_link(icu::properties::props::Script::Hangul, EnumVariant)]
Hangul = 18,
#[diplomat::rust_link(icu::properties::props::Script::HanifiRohingya, EnumVariant)]
HanifiRohingya = 182,
#[diplomat::rust_link(icu::properties::props::Script::Hanunoo, EnumVariant)]
Hanunoo = 43,
#[diplomat::rust_link(icu::properties::props::Script::Hatran, EnumVariant)]
Hatran = 162,
#[diplomat::rust_link(icu::properties::props::Script::Hebrew, EnumVariant)]
Hebrew = 19,
#[diplomat::rust_link(icu::properties::props::Script::Hiragana, EnumVariant)]
Hiragana = 20,
#[diplomat::rust_link(icu::properties::props::Script::ImperialAramaic, EnumVariant)]
ImperialAramaic = 116,
#[diplomat::rust_link(icu::properties::props::Script::Inherited, EnumVariant)]
Inherited = 1,
#[diplomat::rust_link(icu::properties::props::Script::InscriptionalPahlavi, EnumVariant)]
InscriptionalPahlavi = 122,
#[diplomat::rust_link(icu::properties::props::Script::InscriptionalParthian, EnumVariant)]
InscriptionalParthian = 125,
#[diplomat::rust_link(icu::properties::props::Script::Javanese, EnumVariant)]
Javanese = 78,
#[diplomat::rust_link(icu::properties::props::Script::Kaithi, EnumVariant)]
Kaithi = 120,
#[diplomat::rust_link(icu::properties::props::Script::Kannada, EnumVariant)]
Kannada = 21,
#[diplomat::rust_link(icu::properties::props::Script::Katakana, EnumVariant)]
Katakana = 22,
#[diplomat::rust_link(icu::properties::props::Script::Kawi, EnumVariant)]
Kawi = 198,
#[diplomat::rust_link(icu::properties::props::Script::KayahLi, EnumVariant)]
KayahLi = 79,
#[diplomat::rust_link(icu::properties::props::Script::Kharoshthi, EnumVariant)]
Kharoshthi = 57,
#[diplomat::rust_link(icu::properties::props::Script::KhitanSmallScript, EnumVariant)]
KhitanSmallScript = 191,
#[diplomat::rust_link(icu::properties::props::Script::Khmer, EnumVariant)]
Khmer = 23,
#[diplomat::rust_link(icu::properties::props::Script::Khojki, EnumVariant)]
Khojki = 157,
#[diplomat::rust_link(icu::properties::props::Script::Khudawadi, EnumVariant)]
Khudawadi = 145,
#[diplomat::rust_link(icu::properties::props::Script::Lao, EnumVariant)]
Lao = 24,
#[diplomat::rust_link(icu::properties::props::Script::Latin, EnumVariant)]
Latin = 25,
#[diplomat::rust_link(icu::properties::props::Script::Lepcha, EnumVariant)]
Lepcha = 82,
#[diplomat::rust_link(icu::properties::props::Script::Limbu, EnumVariant)]
Limbu = 48,
#[diplomat::rust_link(icu::properties::props::Script::LinearA, EnumVariant)]
LinearA = 83,
#[diplomat::rust_link(icu::properties::props::Script::LinearB, EnumVariant)]
LinearB = 49,
#[diplomat::rust_link(icu::properties::props::Script::Lisu, EnumVariant)]
Lisu = 131,
#[diplomat::rust_link(icu::properties::props::Script::Lycian, EnumVariant)]
Lycian = 107,
#[diplomat::rust_link(icu::properties::props::Script::Lydian, EnumVariant)]
Lydian = 108,
#[diplomat::rust_link(icu::properties::props::Script::Mahajani, EnumVariant)]
Mahajani = 160,
#[diplomat::rust_link(icu::properties::props::Script::Makasar, EnumVariant)]
Makasar = 180,
#[diplomat::rust_link(icu::properties::props::Script::Malayalam, EnumVariant)]
Malayalam = 26,
#[diplomat::rust_link(icu::properties::props::Script::Mandaic, EnumVariant)]
Mandaic = 84,
#[diplomat::rust_link(icu::properties::props::Script::Manichaean, EnumVariant)]
Manichaean = 121,
#[diplomat::rust_link(icu::properties::props::Script::Marchen, EnumVariant)]
Marchen = 169,
#[diplomat::rust_link(icu::properties::props::Script::MasaramGondi, EnumVariant)]
MasaramGondi = 175,
#[diplomat::rust_link(icu::properties::props::Script::Medefaidrin, EnumVariant)]
Medefaidrin = 181,
#[diplomat::rust_link(icu::properties::props::Script::MeeteiMayek, EnumVariant)]
MeeteiMayek = 115,
#[diplomat::rust_link(icu::properties::props::Script::MendeKikakui, EnumVariant)]
MendeKikakui = 140,
#[diplomat::rust_link(icu::properties::props::Script::MeroiticCursive, EnumVariant)]
MeroiticCursive = 141,
#[diplomat::rust_link(icu::properties::props::Script::MeroiticHieroglyphs, EnumVariant)]
MeroiticHieroglyphs = 86,
#[diplomat::rust_link(icu::properties::props::Script::Miao, EnumVariant)]
Miao = 92,
#[diplomat::rust_link(icu::properties::props::Script::Modi, EnumVariant)]
Modi = 163,
#[diplomat::rust_link(icu::properties::props::Script::Mongolian, EnumVariant)]
Mongolian = 27,
#[diplomat::rust_link(icu::properties::props::Script::Mro, EnumVariant)]
Mro = 149,
#[diplomat::rust_link(icu::properties::props::Script::Multani, EnumVariant)]
Multani = 164,
#[diplomat::rust_link(icu::properties::props::Script::Myanmar, EnumVariant)]
Myanmar = 28,
#[diplomat::rust_link(icu::properties::props::Script::Nabataean, EnumVariant)]
Nabataean = 143,
#[diplomat::rust_link(icu::properties::props::Script::NagMundari, EnumVariant)]
NagMundari = 199,
#[diplomat::rust_link(icu::properties::props::Script::Nandinagari, EnumVariant)]
Nandinagari = 187,
#[diplomat::rust_link(icu::properties::props::Script::Nastaliq, EnumVariant)]
Nastaliq = 200,
#[diplomat::rust_link(icu::properties::props::Script::NewTaiLue, EnumVariant)]
NewTaiLue = 59,
#[diplomat::rust_link(icu::properties::props::Script::Newa, EnumVariant)]
Newa = 170,
#[diplomat::rust_link(icu::properties::props::Script::Nko, EnumVariant)]
Nko = 87,
#[diplomat::rust_link(icu::properties::props::Script::Nushu, EnumVariant)]
Nushu = 150,
#[diplomat::rust_link(icu::properties::props::Script::NyiakengPuachueHmong, EnumVariant)]
NyiakengPuachueHmong = 186,
#[diplomat::rust_link(icu::properties::props::Script::Ogham, EnumVariant)]
Ogham = 29,
#[diplomat::rust_link(icu::properties::props::Script::OlChiki, EnumVariant)]
OlChiki = 109,
#[diplomat::rust_link(icu::properties::props::Script::OldHungarian, EnumVariant)]
OldHungarian = 76,
#[diplomat::rust_link(icu::properties::props::Script::OldItalic, EnumVariant)]
OldItalic = 30,
#[diplomat::rust_link(icu::properties::props::Script::OldNorthArabian, EnumVariant)]
OldNorthArabian = 142,
#[diplomat::rust_link(icu::properties::props::Script::OldPermic, EnumVariant)]
OldPermic = 89,
#[diplomat::rust_link(icu::properties::props::Script::OldPersian, EnumVariant)]
OldPersian = 61,
#[diplomat::rust_link(icu::properties::props::Script::OldSogdian, EnumVariant)]
OldSogdian = 184,
#[diplomat::rust_link(icu::properties::props::Script::OldSouthArabian, EnumVariant)]
OldSouthArabian = 133,
#[diplomat::rust_link(icu::properties::props::Script::OldTurkic, EnumVariant)]
OldTurkic = 88,
#[diplomat::rust_link(icu::properties::props::Script::OldUyghur, EnumVariant)]
OldUyghur = 194,
#[diplomat::rust_link(icu::properties::props::Script::Oriya, EnumVariant)]
Oriya = 31,
#[diplomat::rust_link(icu::properties::props::Script::Osage, EnumVariant)]
Osage = 171,
#[diplomat::rust_link(icu::properties::props::Script::Osmanya, EnumVariant)]
Osmanya = 50,
#[diplomat::rust_link(icu::properties::props::Script::PahawhHmong, EnumVariant)]
PahawhHmong = 75,
#[diplomat::rust_link(icu::properties::props::Script::Palmyrene, EnumVariant)]
Palmyrene = 144,
#[diplomat::rust_link(icu::properties::props::Script::PauCinHau, EnumVariant)]
PauCinHau = 165,
#[diplomat::rust_link(icu::properties::props::Script::PhagsPa, EnumVariant)]
PhagsPa = 90,
#[diplomat::rust_link(icu::properties::props::Script::Phoenician, EnumVariant)]
Phoenician = 91,
#[diplomat::rust_link(icu::properties::props::Script::PsalterPahlavi, EnumVariant)]
PsalterPahlavi = 123,
#[diplomat::rust_link(icu::properties::props::Script::Rejang, EnumVariant)]
Rejang = 110,
#[diplomat::rust_link(icu::properties::props::Script::Runic, EnumVariant)]
Runic = 32,
#[diplomat::rust_link(icu::properties::props::Script::Samaritan, EnumVariant)]
Samaritan = 126,
#[diplomat::rust_link(icu::properties::props::Script::Saurashtra, EnumVariant)]
Saurashtra = 111,
#[diplomat::rust_link(icu::properties::props::Script::Sharada, EnumVariant)]
Sharada = 151,
#[diplomat::rust_link(icu::properties::props::Script::Shavian, EnumVariant)]
Shavian = 51,
#[diplomat::rust_link(icu::properties::props::Script::Siddham, EnumVariant)]
Siddham = 166,
#[diplomat::rust_link(icu::properties::props::Script::SignWriting, EnumVariant)]
SignWriting = 112,
#[diplomat::rust_link(icu::properties::props::Script::Sinhala, EnumVariant)]
Sinhala = 33,
#[diplomat::rust_link(icu::properties::props::Script::Sogdian, EnumVariant)]
Sogdian = 183,
#[diplomat::rust_link(icu::properties::props::Script::SoraSompeng, EnumVariant)]
SoraSompeng = 152,
#[diplomat::rust_link(icu::properties::props::Script::Soyombo, EnumVariant)]
Soyombo = 176,
#[diplomat::rust_link(icu::properties::props::Script::Sundanese, EnumVariant)]
Sundanese = 113,
#[diplomat::rust_link(icu::properties::props::Script::SylotiNagri, EnumVariant)]
SylotiNagri = 58,
#[diplomat::rust_link(icu::properties::props::Script::Syriac, EnumVariant)]
Syriac = 34,
#[diplomat::rust_link(icu::properties::props::Script::Tagalog, EnumVariant)]
Tagalog = 42,
#[diplomat::rust_link(icu::properties::props::Script::Tagbanwa, EnumVariant)]
Tagbanwa = 45,
#[diplomat::rust_link(icu::properties::props::Script::TaiLe, EnumVariant)]
TaiLe = 52,
#[diplomat::rust_link(icu::properties::props::Script::TaiTham, EnumVariant)]
TaiTham = 106,
#[diplomat::rust_link(icu::properties::props::Script::TaiViet, EnumVariant)]
TaiViet = 127,
#[diplomat::rust_link(icu::properties::props::Script::Takri, EnumVariant)]
Takri = 153,
#[diplomat::rust_link(icu::properties::props::Script::Tamil, EnumVariant)]
Tamil = 35,
#[diplomat::rust_link(icu::properties::props::Script::Tangsa, EnumVariant)]
Tangsa = 195,
#[diplomat::rust_link(icu::properties::props::Script::Tangut, EnumVariant)]
Tangut = 154,
#[diplomat::rust_link(icu::properties::props::Script::Telugu, EnumVariant)]
Telugu = 36,
#[diplomat::rust_link(icu::properties::props::Script::Thaana, EnumVariant)]
Thaana = 37,
#[diplomat::rust_link(icu::properties::props::Script::Thai, EnumVariant)]
Thai = 38,
#[diplomat::rust_link(icu::properties::props::Script::Tibetan, EnumVariant)]
Tibetan = 39,
#[diplomat::rust_link(icu::properties::props::Script::Tifinagh, EnumVariant)]
Tifinagh = 60,
#[diplomat::rust_link(icu::properties::props::Script::Tirhuta, EnumVariant)]
Tirhuta = 158,
#[diplomat::rust_link(icu::properties::props::Script::Toto, EnumVariant)]
Toto = 196,
#[diplomat::rust_link(icu::properties::props::Script::Ugaritic, EnumVariant)]
Ugaritic = 53,
#[diplomat::rust_link(icu::properties::props::Script::Unknown, EnumVariant)]
Unknown = 103,
#[diplomat::rust_link(icu::properties::props::Script::Vai, EnumVariant)]
Vai = 99,
#[diplomat::rust_link(icu::properties::props::Script::Vithkuqi, EnumVariant)]
Vithkuqi = 197,
#[diplomat::rust_link(icu::properties::props::Script::Wancho, EnumVariant)]
Wancho = 188,
#[diplomat::rust_link(icu::properties::props::Script::WarangCiti, EnumVariant)]
WarangCiti = 146,
#[diplomat::rust_link(icu::properties::props::Script::Yezidi, EnumVariant)]
Yezidi = 192,
#[diplomat::rust_link(icu::properties::props::Script::Yi, EnumVariant)]
Yi = 41,
#[diplomat::rust_link(icu::properties::props::Script::ZanabazarSquare, EnumVariant)]
ZanabazarSquare = 177,
}
impl Script {
pub fn to_integer(self) -> u16 {
self as u16
}
pub fn from_integer(other: u16) -> Option<Self> {
Some(match other {
167 => Self::Adlam,
161 => Self::Ahom,
156 => Self::AnatolianHieroglyphs,
2 => Self::Arabic,
3 => Self::Armenian,
117 => Self::Avestan,
62 => Self::Balinese,
130 => Self::Bamum,
134 => Self::BassaVah,
63 => Self::Batak,
4 => Self::Bengali,
168 => Self::Bhaiksuki,
5 => Self::Bopomofo,
65 => Self::Brahmi,
46 => Self::Braille,
55 => Self::Buginese,
44 => Self::Buhid,
40 => Self::CanadianAboriginal,
104 => Self::Carian,
159 => Self::CaucasianAlbanian,
118 => Self::Chakma,
66 => Self::Cham,
6 => Self::Cherokee,
189 => Self::Chorasmian,
0 => Self::Common,
7 => Self::Coptic,
101 => Self::Cuneiform,
47 => Self::Cypriot,
193 => Self::CyproMinoan,
8 => Self::Cyrillic,
9 => Self::Deseret,
10 => Self::Devanagari,
190 => Self::DivesAkuru,
178 => Self::Dogra,
135 => Self::Duployan,
71 => Self::EgyptianHieroglyphs,
136 => Self::Elbasan,
185 => Self::Elymaic,
11 => Self::Ethiopian,
12 => Self::Georgian,
56 => Self::Glagolitic,
13 => Self::Gothic,
137 => Self::Grantha,
14 => Self::Greek,
15 => Self::Gujarati,
179 => Self::GunjalaGondi,
16 => Self::Gurmukhi,
17 => Self::Han,
18 => Self::Hangul,
182 => Self::HanifiRohingya,
43 => Self::Hanunoo,
162 => Self::Hatran,
19 => Self::Hebrew,
20 => Self::Hiragana,
116 => Self::ImperialAramaic,
1 => Self::Inherited,
122 => Self::InscriptionalPahlavi,
125 => Self::InscriptionalParthian,
78 => Self::Javanese,
120 => Self::Kaithi,
21 => Self::Kannada,
22 => Self::Katakana,
198 => Self::Kawi,
79 => Self::KayahLi,
57 => Self::Kharoshthi,
191 => Self::KhitanSmallScript,
23 => Self::Khmer,
157 => Self::Khojki,
145 => Self::Khudawadi,
24 => Self::Lao,
25 => Self::Latin,
82 => Self::Lepcha,
48 => Self::Limbu,
83 => Self::LinearA,
49 => Self::LinearB,
131 => Self::Lisu,
107 => Self::Lycian,
108 => Self::Lydian,
160 => Self::Mahajani,
180 => Self::Makasar,
26 => Self::Malayalam,
84 => Self::Mandaic,
121 => Self::Manichaean,
169 => Self::Marchen,
175 => Self::MasaramGondi,
181 => Self::Medefaidrin,
115 => Self::MeeteiMayek,
140 => Self::MendeKikakui,
141 => Self::MeroiticCursive,
86 => Self::MeroiticHieroglyphs,
92 => Self::Miao,
163 => Self::Modi,
27 => Self::Mongolian,
149 => Self::Mro,
164 => Self::Multani,
28 => Self::Myanmar,
143 => Self::Nabataean,
199 => Self::NagMundari,
187 => Self::Nandinagari,
200 => Self::Nastaliq,
59 => Self::NewTaiLue,
170 => Self::Newa,
87 => Self::Nko,
150 => Self::Nushu,
186 => Self::NyiakengPuachueHmong,
29 => Self::Ogham,
109 => Self::OlChiki,
76 => Self::OldHungarian,
30 => Self::OldItalic,
142 => Self::OldNorthArabian,
89 => Self::OldPermic,
61 => Self::OldPersian,
184 => Self::OldSogdian,
133 => Self::OldSouthArabian,
88 => Self::OldTurkic,
194 => Self::OldUyghur,
31 => Self::Oriya,
171 => Self::Osage,
50 => Self::Osmanya,
75 => Self::PahawhHmong,
144 => Self::Palmyrene,
165 => Self::PauCinHau,
90 => Self::PhagsPa,
91 => Self::Phoenician,
123 => Self::PsalterPahlavi,
110 => Self::Rejang,
32 => Self::Runic,
126 => Self::Samaritan,
111 => Self::Saurashtra,
151 => Self::Sharada,
51 => Self::Shavian,
166 => Self::Siddham,
112 => Self::SignWriting,
33 => Self::Sinhala,
183 => Self::Sogdian,
152 => Self::SoraSompeng,
176 => Self::Soyombo,
113 => Self::Sundanese,
58 => Self::SylotiNagri,
34 => Self::Syriac,
42 => Self::Tagalog,
45 => Self::Tagbanwa,
52 => Self::TaiLe,
106 => Self::TaiTham,
127 => Self::TaiViet,
153 => Self::Takri,
35 => Self::Tamil,
195 => Self::Tangsa,
154 => Self::Tangut,
36 => Self::Telugu,
37 => Self::Thaana,
38 => Self::Thai,
39 => Self::Tibetan,
60 => Self::Tifinagh,
158 => Self::Tirhuta,
196 => Self::Toto,
53 => Self::Ugaritic,
103 => Self::Unknown,
99 => Self::Vai,
197 => Self::Vithkuqi,
188 => Self::Wancho,
146 => Self::WarangCiti,
192 => Self::Yezidi,
41 => Self::Yi,
177 => Self::ZanabazarSquare,
_ => return None,
})
}
}
#[diplomat::rust_link(icu::properties::props::HangulSyllableType, Struct)]
#[diplomat::enum_convert(icu_properties::props::HangulSyllableType, needs_wildcard)]
pub enum HangulSyllableType {
#[diplomat::rust_link(
icu::properties::props::HangulSyllableType::NotApplicable,
EnumVariant
)]
NotApplicable = 0,
#[diplomat::rust_link(
icu::properties::props::HangulSyllableType::LeadingJamo,
EnumVariant
)]
LeadingJamo = 1,
#[diplomat::rust_link(icu::properties::props::HangulSyllableType::VowelJamo, EnumVariant)]
VowelJamo = 2,
#[diplomat::rust_link(
icu::properties::props::HangulSyllableType::TrailingJamo,
EnumVariant
)]
TrailingJamo = 3,
#[diplomat::rust_link(
icu::properties::props::HangulSyllableType::LeadingVowelSyllable,
EnumVariant
)]
LeadingVowelSyllable = 4,
#[diplomat::rust_link(
icu::properties::props::HangulSyllableType::LeadingVowelTrailingSyllable,
EnumVariant
)]
LeadingVowelTrailingSyllable = 5,
}
impl HangulSyllableType {
pub fn to_integer(self) -> u8 {
self as u8
}
pub fn from_integer(other: u8) -> Option<Self> {
Some(match other {
0 => Self::NotApplicable,
1 => Self::LeadingJamo,
2 => Self::VowelJamo,
3 => Self::TrailingJamo,
4 => Self::LeadingVowelSyllable,
5 => Self::LeadingVowelTrailingSyllable,
_ => return None,
})
}
}
#[diplomat::rust_link(icu::properties::props::EastAsianWidth, Struct)]
#[diplomat::enum_convert(icu_properties::props::EastAsianWidth, needs_wildcard)]
pub enum EastAsianWidth {
#[diplomat::rust_link(icu::properties::props::EastAsianWidth::Neutral, EnumVariant)]
Neutral = 0,
#[diplomat::rust_link(icu::properties::props::EastAsianWidth::Ambiguous, EnumVariant)]
Ambiguous = 1,
#[diplomat::rust_link(icu::properties::props::EastAsianWidth::Halfwidth, EnumVariant)]
Halfwidth = 2,
#[diplomat::rust_link(icu::properties::props::EastAsianWidth::Fullwidth, EnumVariant)]
Fullwidth = 3,
#[diplomat::rust_link(icu::properties::props::EastAsianWidth::Narrow, EnumVariant)]
Narrow = 4,
#[diplomat::rust_link(icu::properties::props::EastAsianWidth::Wide, EnumVariant)]
Wide = 5,
}
impl EastAsianWidth {
pub fn to_integer(self) -> u8 {
self as u8
}
pub fn from_integer(other: u8) -> Option<Self> {
Some(match other {
0 => Self::Neutral,
1 => Self::Ambiguous,
2 => Self::Halfwidth,
3 => Self::Fullwidth,
4 => Self::Narrow,
5 => Self::Wide,
_ => return None,
})
}
}
#[diplomat::rust_link(icu::properties::props::LineBreak, Struct)]
#[diplomat::enum_convert(icu_properties::props::LineBreak, needs_wildcard)]
pub enum LineBreak {
#[diplomat::rust_link(icu::props::LineBreak::Unknown, EnumVariant)]
Unknown = 0,
#[diplomat::rust_link(icu::props::LineBreak::Ambiguous, EnumVariant)]
Ambiguous = 1,
#[diplomat::rust_link(icu::props::LineBreak::Alphabetic, EnumVariant)]
Alphabetic = 2,
#[diplomat::rust_link(icu::props::LineBreak::BreakBoth, EnumVariant)]
BreakBoth = 3,
#[diplomat::rust_link(icu::props::LineBreak::BreakAfter, EnumVariant)]
BreakAfter = 4,
#[diplomat::rust_link(icu::props::LineBreak::BreakBefore, EnumVariant)]
BreakBefore = 5,
#[diplomat::rust_link(icu::props::LineBreak::MandatoryBreak, EnumVariant)]
MandatoryBreak = 6,
#[diplomat::rust_link(icu::props::LineBreak::ContingentBreak, EnumVariant)]
ContingentBreak = 7,
#[diplomat::rust_link(icu::props::LineBreak::ClosePunctuation, EnumVariant)]
ClosePunctuation = 8,
#[diplomat::rust_link(icu::props::LineBreak::CombiningMark, EnumVariant)]
CombiningMark = 9,
#[diplomat::rust_link(icu::props::LineBreak::CarriageReturn, EnumVariant)]
CarriageReturn = 10,
#[diplomat::rust_link(icu::props::LineBreak::Exclamation, EnumVariant)]
Exclamation = 11,
#[diplomat::rust_link(icu::props::LineBreak::Glue, EnumVariant)]
Glue = 12,
#[diplomat::rust_link(icu::props::LineBreak::Hyphen, EnumVariant)]
Hyphen = 13,
#[diplomat::rust_link(icu::props::LineBreak::Ideographic, EnumVariant)]
Ideographic = 14,
#[diplomat::rust_link(icu::props::LineBreak::Inseparable, EnumVariant)]
Inseparable = 15,
#[diplomat::rust_link(icu::props::LineBreak::InfixNumeric, EnumVariant)]
InfixNumeric = 16,
#[diplomat::rust_link(icu::props::LineBreak::LineFeed, EnumVariant)]
LineFeed = 17,
#[diplomat::rust_link(icu::props::LineBreak::Nonstarter, EnumVariant)]
Nonstarter = 18,
#[diplomat::rust_link(icu::props::LineBreak::Numeric, EnumVariant)]
Numeric = 19,
#[diplomat::rust_link(icu::props::LineBreak::OpenPunctuation, EnumVariant)]
OpenPunctuation = 20,
#[diplomat::rust_link(icu::props::LineBreak::PostfixNumeric, EnumVariant)]
PostfixNumeric = 21,
#[diplomat::rust_link(icu::props::LineBreak::PrefixNumeric, EnumVariant)]
PrefixNumeric = 22,
#[diplomat::rust_link(icu::props::LineBreak::Quotation, EnumVariant)]
Quotation = 23,
#[diplomat::rust_link(icu::props::LineBreak::ComplexContext, EnumVariant)]
ComplexContext = 24,
#[diplomat::rust_link(icu::props::LineBreak::Surrogate, EnumVariant)]
Surrogate = 25,
#[diplomat::rust_link(icu::props::LineBreak::Space, EnumVariant)]
Space = 26,
#[diplomat::rust_link(icu::props::LineBreak::BreakSymbols, EnumVariant)]
BreakSymbols = 27,
#[diplomat::rust_link(icu::props::LineBreak::ZWSpace, EnumVariant)]
ZWSpace = 28,
#[diplomat::rust_link(icu::props::LineBreak::NextLine, EnumVariant)]
NextLine = 29,
#[diplomat::rust_link(icu::props::LineBreak::WordJoiner, EnumVariant)]
WordJoiner = 30,
#[diplomat::rust_link(icu::props::LineBreak::H2, EnumVariant)]
H2 = 31,
#[diplomat::rust_link(icu::props::LineBreak::H3, EnumVariant)]
H3 = 32,
#[diplomat::rust_link(icu::props::LineBreak::JL, EnumVariant)]
JL = 33,
#[diplomat::rust_link(icu::props::LineBreak::JT, EnumVariant)]
JT = 34,
#[diplomat::rust_link(icu::props::LineBreak::JV, EnumVariant)]
JV = 35,
#[diplomat::rust_link(icu::props::LineBreak::CloseParenthesis, EnumVariant)]
CloseParenthesis = 36,
#[diplomat::rust_link(icu::props::LineBreak::ConditionalJapaneseStarter, EnumVariant)]
ConditionalJapaneseStarter = 37,
#[diplomat::rust_link(icu::props::LineBreak::HebrewLetter, EnumVariant)]
HebrewLetter = 38,
#[diplomat::rust_link(icu::props::LineBreak::RegionalIndicator, EnumVariant)]
RegionalIndicator = 39,
#[diplomat::rust_link(icu::props::LineBreak::EBase, EnumVariant)]
EBase = 40,
#[diplomat::rust_link(icu::props::LineBreak::EModifier, EnumVariant)]
EModifier = 41,
#[diplomat::rust_link(icu::props::LineBreak::ZWJ, EnumVariant)]
ZWJ = 42,
#[diplomat::rust_link(icu::props::LineBreak::Aksara, EnumVariant)]
Aksara = 43,
#[diplomat::rust_link(icu::props::LineBreak::AksaraPrebase, EnumVariant)]
AksaraPrebase = 44,
#[diplomat::rust_link(icu::props::LineBreak::AksaraStart, EnumVariant)]
AksaraStart = 45,
#[diplomat::rust_link(icu::props::LineBreak::ViramaFinal, EnumVariant)]
ViramaFinal = 46,
#[diplomat::rust_link(icu::props::LineBreak::Virama, EnumVariant)]
Virama = 47,
}
impl LineBreak {
pub fn to_integer(self) -> u8 {
self as u8
}
pub fn from_integer(other: u8) -> Option<Self> {
Some(match other {
0 => Self::Unknown,
1 => Self::Ambiguous,
2 => Self::Alphabetic,
3 => Self::BreakBoth,
4 => Self::BreakAfter,
5 => Self::BreakBefore,
6 => Self::MandatoryBreak,
7 => Self::ContingentBreak,
8 => Self::ClosePunctuation,
9 => Self::CombiningMark,
10 => Self::CarriageReturn,
11 => Self::Exclamation,
12 => Self::Glue,
13 => Self::Hyphen,
14 => Self::Ideographic,
15 => Self::Inseparable,
16 => Self::InfixNumeric,
17 => Self::LineFeed,
18 => Self::Nonstarter,
19 => Self::Numeric,
20 => Self::OpenPunctuation,
21 => Self::PostfixNumeric,
22 => Self::PrefixNumeric,
23 => Self::Quotation,
24 => Self::ComplexContext,
25 => Self::Surrogate,
26 => Self::Space,
27 => Self::BreakSymbols,
28 => Self::ZWSpace,
29 => Self::NextLine,
30 => Self::WordJoiner,
31 => Self::H2,
32 => Self::H3,
33 => Self::JL,
34 => Self::JT,
35 => Self::JV,
36 => Self::CloseParenthesis,
37 => Self::ConditionalJapaneseStarter,
38 => Self::HebrewLetter,
39 => Self::RegionalIndicator,
40 => Self::EBase,
41 => Self::EModifier,
42 => Self::ZWJ,
43 => Self::Aksara,
44 => Self::AksaraPrebase,
45 => Self::AksaraStart,
46 => Self::ViramaFinal,
47 => Self::Virama,
_ => return None,
})
}
}
#[diplomat::rust_link(icu::properties::props::GraphemeClusterBreak, Struct)]
#[diplomat::enum_convert(icu_properties::props::GraphemeClusterBreak, needs_wildcard)]
pub enum GraphemeClusterBreak {
#[diplomat::rust_link(icu::properties::props::LineBreak::Other, EnumVariant)]
Other = 0,
#[diplomat::rust_link(icu::properties::props::LineBreak::Control, EnumVariant)]
Control = 1,
#[diplomat::rust_link(icu::properties::props::LineBreak::CR, EnumVariant)]
CR = 2,
#[diplomat::rust_link(icu::properties::props::LineBreak::Extend, EnumVariant)]
Extend = 3,
#[diplomat::rust_link(icu::properties::props::LineBreak::L, EnumVariant)]
L = 4,
#[diplomat::rust_link(icu::properties::props::LineBreak::LF, EnumVariant)]
LF = 5,
#[diplomat::rust_link(icu::properties::props::LineBreak::LV, EnumVariant)]
LV = 6,
#[diplomat::rust_link(icu::properties::props::LineBreak::LVT, EnumVariant)]
LVT = 7,
#[diplomat::rust_link(icu::properties::props::LineBreak::T, EnumVariant)]
T = 8,
#[diplomat::rust_link(icu::properties::props::LineBreak::V, EnumVariant)]
V = 9,
#[diplomat::rust_link(icu::properties::props::LineBreak::SpacingMark, EnumVariant)]
SpacingMark = 10,
#[diplomat::rust_link(icu::properties::props::LineBreak::Prepend, EnumVariant)]
Prepend = 11,
#[diplomat::rust_link(icu::properties::props::LineBreak::RegionalIndicator, EnumVariant)]
RegionalIndicator = 12,
#[diplomat::rust_link(icu::properties::props::LineBreak::EBase, EnumVariant)]
EBase = 13,
#[diplomat::rust_link(icu::properties::props::LineBreak::EBaseGAZ, EnumVariant)]
EBaseGAZ = 14,
#[diplomat::rust_link(icu::properties::props::LineBreak::EModifier, EnumVariant)]
EModifier = 15,
#[diplomat::rust_link(icu::properties::props::LineBreak::GlueAfterZwj, EnumVariant)]
GlueAfterZwj = 16,
#[diplomat::rust_link(icu::properties::props::LineBreak::ZWJ, EnumVariant)]
ZWJ = 17,
}
impl GraphemeClusterBreak {
pub fn to_integer(self) -> u8 {
self as u8
}
pub fn from_integer(other: u8) -> Option<Self> {
Some(match other {
0 => Self::Other,
1 => Self::Control,
2 => Self::CR,
3 => Self::Extend,
4 => Self::L,
5 => Self::LF,
6 => Self::LV,
7 => Self::LVT,
8 => Self::T,
9 => Self::V,
10 => Self::SpacingMark,
11 => Self::Prepend,
12 => Self::RegionalIndicator,
13 => Self::EBase,
14 => Self::EBaseGAZ,
15 => Self::EModifier,
16 => Self::GlueAfterZwj,
17 => Self::ZWJ,
_ => return None,
})
}
}
#[diplomat::rust_link(icu::properties::props::WordBreak, Struct)]
#[diplomat::enum_convert(icu_properties::props::WordBreak, needs_wildcard)]
pub enum WordBreak {
#[diplomat::rust_link(icu::properties::props::WordBreak::Other, EnumVariant)]
Other = 0,
#[diplomat::rust_link(icu::properties::props::WordBreak::ALetter, EnumVariant)]
ALetter = 1,
#[diplomat::rust_link(icu::properties::props::WordBreak::Format, EnumVariant)]
Format = 2,
#[diplomat::rust_link(icu::properties::props::WordBreak::Katakana, EnumVariant)]
Katakana = 3,
#[diplomat::rust_link(icu::properties::props::WordBreak::MidLetter, EnumVariant)]
MidLetter = 4,
#[diplomat::rust_link(icu::properties::props::WordBreak::MidNum, EnumVariant)]
MidNum = 5,
#[diplomat::rust_link(icu::properties::props::WordBreak::Numeric, EnumVariant)]
Numeric = 6,
#[diplomat::rust_link(icu::properties::props::WordBreak::ExtendNumLet, EnumVariant)]
ExtendNumLet = 7,
#[diplomat::rust_link(icu::properties::props::WordBreak::CR, EnumVariant)]
CR = 8,
#[diplomat::rust_link(icu::properties::props::WordBreak::Extend, EnumVariant)]
Extend = 9,
#[diplomat::rust_link(icu::properties::props::WordBreak::LF, EnumVariant)]
LF = 10,
#[diplomat::rust_link(icu::properties::props::WordBreak::MidNumLet, EnumVariant)]
MidNumLet = 11,
#[diplomat::rust_link(icu::properties::props::WordBreak::Newline, EnumVariant)]
Newline = 12,
#[diplomat::rust_link(icu::properties::props::WordBreak::RegionalIndicator, EnumVariant)]
RegionalIndicator = 13,
#[diplomat::rust_link(icu::properties::props::WordBreak::HebrewLetter, EnumVariant)]
HebrewLetter = 14,
#[diplomat::rust_link(icu::properties::props::WordBreak::SingleQuote, EnumVariant)]
SingleQuote = 15,
#[diplomat::rust_link(icu::properties::props::WordBreak::DoubleQuote, EnumVariant)]
DoubleQuote = 16,
#[diplomat::rust_link(icu::properties::props::WordBreak::EBase, EnumVariant)]
EBase = 17,
#[diplomat::rust_link(icu::properties::props::WordBreak::EBaseGAZ, EnumVariant)]
EBaseGAZ = 18,
#[diplomat::rust_link(icu::properties::props::WordBreak::EModifier, EnumVariant)]
EModifier = 19,
#[diplomat::rust_link(icu::properties::props::WordBreak::GlueAfterZwj, EnumVariant)]
GlueAfterZwj = 20,
#[diplomat::rust_link(icu::properties::props::WordBreak::ZWJ, EnumVariant)]
ZWJ = 21,
#[diplomat::rust_link(icu::properties::props::WordBreak::WSegSpace, EnumVariant)]
WSegSpace = 22,
}
impl WordBreak {
pub fn to_integer(self) -> u8 {
self as u8
}
pub fn from_integer(other: u8) -> Option<Self> {
Some(match other {
0 => Self::Other,
1 => Self::ALetter,
2 => Self::Format,
3 => Self::Katakana,
4 => Self::MidLetter,
5 => Self::MidNum,
6 => Self::Numeric,
7 => Self::ExtendNumLet,
8 => Self::CR,
9 => Self::Extend,
10 => Self::LF,
11 => Self::MidNumLet,
12 => Self::Newline,
13 => Self::RegionalIndicator,
14 => Self::HebrewLetter,
15 => Self::SingleQuote,
16 => Self::DoubleQuote,
17 => Self::EBase,
18 => Self::EBaseGAZ,
19 => Self::EModifier,
20 => Self::GlueAfterZwj,
21 => Self::ZWJ,
22 => Self::WSegSpace,
_ => return None,
})
}
}
#[diplomat::rust_link(icu::properties::props::SentenceBreak, Struct)]
#[diplomat::enum_convert(icu_properties::props::SentenceBreak, needs_wildcard)]
pub enum SentenceBreak {
#[diplomat::rust_link(icu::properties::props::SentenceBreak::Other, EnumVariant)]
Other = 0,
#[diplomat::rust_link(icu::properties::props::SentenceBreak::ATerm, EnumVariant)]
ATerm = 1,
#[diplomat::rust_link(icu::properties::props::SentenceBreak::Close, EnumVariant)]
Close = 2,
#[diplomat::rust_link(icu::properties::props::SentenceBreak::Format, EnumVariant)]
Format = 3,
#[diplomat::rust_link(icu::properties::props::SentenceBreak::Lower, EnumVariant)]
Lower = 4,
#[diplomat::rust_link(icu::properties::props::SentenceBreak::Numeric, EnumVariant)]
Numeric = 5,
#[diplomat::rust_link(icu::properties::props::SentenceBreak::OLetter, EnumVariant)]
OLetter = 6,
#[diplomat::rust_link(icu::properties::props::SentenceBreak::Sep, EnumVariant)]
Sep = 7,
#[diplomat::rust_link(icu::properties::props::SentenceBreak::Sp, EnumVariant)]
Sp = 8,
#[diplomat::rust_link(icu::properties::props::SentenceBreak::STerm, EnumVariant)]
STerm = 9,
#[diplomat::rust_link(icu::properties::props::SentenceBreak::Upper, EnumVariant)]
Upper = 10,
#[diplomat::rust_link(icu::properties::props::SentenceBreak::CR, EnumVariant)]
CR = 11,
#[diplomat::rust_link(icu::properties::props::SentenceBreak::Extend, EnumVariant)]
Extend = 12,
#[diplomat::rust_link(icu::properties::props::SentenceBreak::LF, EnumVariant)]
LF = 13,
#[diplomat::rust_link(icu::properties::props::SentenceBreak::SContinue, EnumVariant)]
SContinue = 14,
}
impl SentenceBreak {
pub fn to_integer(self) -> u8 {
self as u8
}
pub fn from_integer(other: u8) -> Option<Self> {
Some(match other {
0 => Self::Other,
1 => Self::ATerm,
2 => Self::Close,
3 => Self::Format,
4 => Self::Lower,
5 => Self::Numeric,
6 => Self::OLetter,
7 => Self::Sep,
8 => Self::Sp,
9 => Self::STerm,
10 => Self::Upper,
11 => Self::CR,
12 => Self::Extend,
13 => Self::LF,
14 => Self::SContinue,
_ => return None,
})
}
}
#[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass, Struct)]
#[diplomat::enum_convert(icu_properties::props::CanonicalCombiningClass, needs_wildcard)]
pub enum CanonicalCombiningClass {
#[diplomat::rust_link(
icu::properties::props::CanonicalCombiningClass::NotReordered,
EnumVariant
)]
NotReordered = 0,
#[diplomat::rust_link(
icu::properties::props::CanonicalCombiningClass::Overlay,
EnumVariant
)]
Overlay = 1,
#[diplomat::rust_link(
icu::properties::props::CanonicalCombiningClass::HanReading,
EnumVariant
)]
HanReading = 6,
#[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::Nukta, EnumVariant)]
Nukta = 7,
#[diplomat::rust_link(
icu::properties::props::CanonicalCombiningClass::KanaVoicing,
EnumVariant
)]
KanaVoicing = 8,
#[diplomat::rust_link(
icu::properties::props::CanonicalCombiningClass::Virama,
EnumVariant
)]
Virama = 9,
#[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::CCC10, EnumVariant)]
CCC10 = 10,
#[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::CCC11, EnumVariant)]
CCC11 = 11,
#[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::CCC12, EnumVariant)]
CCC12 = 12,
#[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::CCC13, EnumVariant)]
CCC13 = 13,
#[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::CCC14, EnumVariant)]
CCC14 = 14,
#[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::CCC15, EnumVariant)]
CCC15 = 15,
#[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::CCC16, EnumVariant)]
CCC16 = 16,
#[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::CCC17, EnumVariant)]
CCC17 = 17,
#[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::CCC18, EnumVariant)]
CCC18 = 18,
#[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::CCC19, EnumVariant)]
CCC19 = 19,
#[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::CCC20, EnumVariant)]
CCC20 = 20,
#[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::CCC21, EnumVariant)]
CCC21 = 21,
#[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::CCC22, EnumVariant)]
CCC22 = 22,
#[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::CCC23, EnumVariant)]
CCC23 = 23,
#[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::CCC24, EnumVariant)]
CCC24 = 24,
#[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::CCC25, EnumVariant)]
CCC25 = 25,
#[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::CCC26, EnumVariant)]
CCC26 = 26,
#[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::CCC27, EnumVariant)]
CCC27 = 27,
#[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::CCC28, EnumVariant)]
CCC28 = 28,
#[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::CCC29, EnumVariant)]
CCC29 = 29,
#[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::CCC30, EnumVariant)]
CCC30 = 30,
#[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::CCC31, EnumVariant)]
CCC31 = 31,
#[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::CCC32, EnumVariant)]
CCC32 = 32,
#[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::CCC33, EnumVariant)]
CCC33 = 33,
#[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::CCC34, EnumVariant)]
CCC34 = 34,
#[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::CCC35, EnumVariant)]
CCC35 = 35,
#[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::CCC36, EnumVariant)]
CCC36 = 36,
#[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::CCC84, EnumVariant)]
CCC84 = 84,
#[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::CCC91, EnumVariant)]
CCC91 = 91,
#[diplomat::rust_link(
icu::properties::props::CanonicalCombiningClass::CCC103,
EnumVariant
)]
CCC103 = 103,
#[diplomat::rust_link(
icu::properties::props::CanonicalCombiningClass::CCC107,
EnumVariant
)]
CCC107 = 107,
#[diplomat::rust_link(
icu::properties::props::CanonicalCombiningClass::CCC118,
EnumVariant
)]
CCC118 = 118,
#[diplomat::rust_link(
icu::properties::props::CanonicalCombiningClass::CCC122,
EnumVariant
)]
CCC122 = 122,
#[diplomat::rust_link(
icu::properties::props::CanonicalCombiningClass::CCC129,
EnumVariant
)]
CCC129 = 129,
#[diplomat::rust_link(
icu::properties::props::CanonicalCombiningClass::CCC130,
EnumVariant
)]
CCC130 = 130,
#[diplomat::rust_link(
icu::properties::props::CanonicalCombiningClass::CCC132,
EnumVariant
)]
CCC132 = 132,
#[diplomat::rust_link(
icu::properties::props::CanonicalCombiningClass::CCC133,
EnumVariant
)]
CCC133 = 133,
#[diplomat::rust_link(
icu::properties::props::CanonicalCombiningClass::AttachedBelowLeft,
EnumVariant
)]
AttachedBelowLeft = 200,
#[diplomat::rust_link(
icu::properties::props::CanonicalCombiningClass::AttachedBelow,
EnumVariant
)]
AttachedBelow = 202,
#[diplomat::rust_link(
icu::properties::props::CanonicalCombiningClass::AttachedAbove,
EnumVariant
)]
AttachedAbove = 214,
#[diplomat::rust_link(
icu::properties::props::CanonicalCombiningClass::AttachedAboveRight,
EnumVariant
)]
AttachedAboveRight = 216,
#[diplomat::rust_link(
icu::properties::props::CanonicalCombiningClass::BelowLeft,
EnumVariant
)]
BelowLeft = 218,
#[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::Below, EnumVariant)]
Below = 220,
#[diplomat::rust_link(
icu::properties::props::CanonicalCombiningClass::BelowRight,
EnumVariant
)]
BelowRight = 222,
#[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::Left, EnumVariant)]
Left = 224,
#[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::Right, EnumVariant)]
Right = 226,
#[diplomat::rust_link(
icu::properties::props::CanonicalCombiningClass::AboveLeft,
EnumVariant
)]
AboveLeft = 228,
#[diplomat::rust_link(icu::properties::props::CanonicalCombiningClass::Above, EnumVariant)]
Above = 230,
#[diplomat::rust_link(
icu::properties::props::CanonicalCombiningClass::AboveRight,
EnumVariant
)]
AboveRight = 232,
#[diplomat::rust_link(
icu::properties::props::CanonicalCombiningClass::DoubleBelow,
EnumVariant
)]
DoubleBelow = 233,
#[diplomat::rust_link(
icu::properties::props::CanonicalCombiningClass::DoubleAbove,
EnumVariant
)]
DoubleAbove = 234,
#[diplomat::rust_link(
icu::properties::props::CanonicalCombiningClass::IotaSubscript,
EnumVariant
)]
IotaSubscript = 240,
}
impl CanonicalCombiningClass {
pub fn to_integer(self) -> u8 {
self as u8
}
pub fn from_integer(other: u8) -> Option<Self> {
Some(match other {
0 => Self::NotReordered,
1 => Self::Overlay,
6 => Self::HanReading,
7 => Self::Nukta,
8 => Self::KanaVoicing,
9 => Self::Virama,
10 => Self::CCC10,
11 => Self::CCC11,
12 => Self::CCC12,
13 => Self::CCC13,
14 => Self::CCC14,
15 => Self::CCC15,
16 => Self::CCC16,
17 => Self::CCC17,
18 => Self::CCC18,
19 => Self::CCC19,
20 => Self::CCC20,
21 => Self::CCC21,
22 => Self::CCC22,
23 => Self::CCC23,
24 => Self::CCC24,
25 => Self::CCC25,
26 => Self::CCC26,
27 => Self::CCC27,
28 => Self::CCC28,
29 => Self::CCC29,
30 => Self::CCC30,
31 => Self::CCC31,
32 => Self::CCC32,
33 => Self::CCC33,
34 => Self::CCC34,
35 => Self::CCC35,
36 => Self::CCC36,
84 => Self::CCC84,
91 => Self::CCC91,
103 => Self::CCC103,
107 => Self::CCC107,
118 => Self::CCC118,
122 => Self::CCC122,
129 => Self::CCC129,
130 => Self::CCC130,
132 => Self::CCC132,
133 => Self::CCC133,
200 => Self::AttachedBelowLeft,
202 => Self::AttachedBelow,
214 => Self::AttachedAbove,
216 => Self::AttachedAboveRight,
218 => Self::BelowLeft,
220 => Self::Below,
222 => Self::BelowRight,
224 => Self::Left,
226 => Self::Right,
228 => Self::AboveLeft,
230 => Self::Above,
232 => Self::AboveRight,
233 => Self::DoubleBelow,
234 => Self::DoubleAbove,
240 => Self::IotaSubscript,
_ => return None,
})
}
}
#[diplomat::rust_link(icu::properties::props::IndicSyllabicCategory, Struct)]
#[diplomat::enum_convert(icu_properties::props::IndicSyllabicCategory, needs_wildcard)]
pub enum IndicSyllabicCategory {
#[diplomat::rust_link(icu::properties::props::IndicSyllabicCategory::Other, EnumVariant)]
Other = 0,
#[diplomat::rust_link(
icu::properties::props::IndicSyllabicCategory::Avagraha,
EnumVariant
)]
Avagraha = 1,
#[diplomat::rust_link(icu::properties::props::IndicSyllabicCategory::Bindu, EnumVariant)]
Bindu = 2,
#[diplomat::rust_link(
icu::properties::props::IndicSyllabicCategory::BrahmiJoiningNumber,
EnumVariant
)]
BrahmiJoiningNumber = 3,
#[diplomat::rust_link(
icu::properties::props::IndicSyllabicCategory::CantillationMark,
EnumVariant
)]
CantillationMark = 4,
#[diplomat::rust_link(
icu::properties::props::IndicSyllabicCategory::Consonant,
EnumVariant
)]
Consonant = 5,
#[diplomat::rust_link(
icu::properties::props::IndicSyllabicCategory::ConsonantDead,
EnumVariant
)]
ConsonantDead = 6,
#[diplomat::rust_link(
icu::properties::props::IndicSyllabicCategory::ConsonantFinal,
EnumVariant
)]
ConsonantFinal = 7,
#[diplomat::rust_link(
icu::properties::props::IndicSyllabicCategory::ConsonantHeadLetter,
EnumVariant
)]
ConsonantHeadLetter = 8,
#[diplomat::rust_link(
icu::properties::props::IndicSyllabicCategory::ConsonantInitialPostfixed,
EnumVariant
)]
ConsonantInitialPostfixed = 9,
#[diplomat::rust_link(
icu::properties::props::IndicSyllabicCategory::ConsonantKiller,
EnumVariant
)]
ConsonantKiller = 10,
#[diplomat::rust_link(
icu::properties::props::IndicSyllabicCategory::ConsonantMedial,
EnumVariant
)]
ConsonantMedial = 11,
#[diplomat::rust_link(
icu::properties::props::IndicSyllabicCategory::ConsonantPlaceholder,
EnumVariant
)]
ConsonantPlaceholder = 12,
#[diplomat::rust_link(
icu::properties::props::IndicSyllabicCategory::ConsonantPrecedingRepha,
EnumVariant
)]
ConsonantPrecedingRepha = 13,
#[diplomat::rust_link(
icu::properties::props::IndicSyllabicCategory::ConsonantPrefixed,
EnumVariant
)]
ConsonantPrefixed = 14,
#[diplomat::rust_link(
icu::properties::props::IndicSyllabicCategory::ConsonantSucceedingRepha,
EnumVariant
)]
ConsonantSucceedingRepha = 15,
#[diplomat::rust_link(
icu::properties::props::IndicSyllabicCategory::ConsonantSubjoined,
EnumVariant
)]
ConsonantSubjoined = 16,
#[diplomat::rust_link(
icu::properties::props::IndicSyllabicCategory::ConsonantWithStacker,
EnumVariant
)]
ConsonantWithStacker = 17,
#[diplomat::rust_link(
icu::properties::props::IndicSyllabicCategory::GeminationMark,
EnumVariant
)]
GeminationMark = 18,
#[diplomat::rust_link(
icu::properties::props::IndicSyllabicCategory::InvisibleStacker,
EnumVariant
)]
InvisibleStacker = 19,
#[diplomat::rust_link(icu::properties::props::IndicSyllabicCategory::Joiner, EnumVariant)]
Joiner = 20,
#[diplomat::rust_link(
icu::properties::props::IndicSyllabicCategory::ModifyingLetter,
EnumVariant
)]
ModifyingLetter = 21,
#[diplomat::rust_link(
icu::properties::props::IndicSyllabicCategory::NonJoiner,
EnumVariant
)]
NonJoiner = 22,
#[diplomat::rust_link(icu::properties::props::IndicSyllabicCategory::Nukta, EnumVariant)]
Nukta = 23,
#[diplomat::rust_link(icu::properties::props::IndicSyllabicCategory::Number, EnumVariant)]
Number = 24,
#[diplomat::rust_link(
icu::properties::props::IndicSyllabicCategory::NumberJoiner,
EnumVariant
)]
NumberJoiner = 25,
#[diplomat::rust_link(
icu::properties::props::IndicSyllabicCategory::PureKiller,
EnumVariant
)]
PureKiller = 26,
#[diplomat::rust_link(
icu::properties::props::IndicSyllabicCategory::RegisterShifter,
EnumVariant
)]
RegisterShifter = 27,
#[diplomat::rust_link(
icu::properties::props::IndicSyllabicCategory::SyllableModifier,
EnumVariant
)]
SyllableModifier = 28,
#[diplomat::rust_link(
icu::properties::props::IndicSyllabicCategory::ToneLetter,
EnumVariant
)]
ToneLetter = 29,
#[diplomat::rust_link(
icu::properties::props::IndicSyllabicCategory::ToneMark,
EnumVariant
)]
ToneMark = 30,
#[diplomat::rust_link(icu::properties::props::IndicSyllabicCategory::Virama, EnumVariant)]
Virama = 31,
#[diplomat::rust_link(icu::properties::props::IndicSyllabicCategory::Visarga, EnumVariant)]
Visarga = 32,
#[diplomat::rust_link(icu::properties::props::IndicSyllabicCategory::Vowel, EnumVariant)]
Vowel = 33,
#[diplomat::rust_link(
icu::properties::props::IndicSyllabicCategory::VowelDependent,
EnumVariant
)]
VowelDependent = 34,
#[diplomat::rust_link(
icu::properties::props::IndicSyllabicCategory::VowelIndependent,
EnumVariant
)]
VowelIndependent = 35,
#[diplomat::rust_link(
icu::properties::props::IndicSyllabicCategory::ReorderingKiller,
EnumVariant
)]
ReorderingKiller = 36,
}
impl IndicSyllabicCategory {
pub fn to_integer(self) -> u8 {
self as u8
}
pub fn from_integer(other: u8) -> Option<Self> {
Some(match other {
0 => Self::Other,
1 => Self::Avagraha,
2 => Self::Bindu,
3 => Self::BrahmiJoiningNumber,
4 => Self::CantillationMark,
5 => Self::Consonant,
6 => Self::ConsonantDead,
7 => Self::ConsonantFinal,
8 => Self::ConsonantHeadLetter,
9 => Self::ConsonantInitialPostfixed,
10 => Self::ConsonantKiller,
11 => Self::ConsonantMedial,
12 => Self::ConsonantPlaceholder,
13 => Self::ConsonantPrecedingRepha,
14 => Self::ConsonantPrefixed,
15 => Self::ConsonantSucceedingRepha,
16 => Self::ConsonantSubjoined,
17 => Self::ConsonantWithStacker,
18 => Self::GeminationMark,
19 => Self::InvisibleStacker,
20 => Self::Joiner,
21 => Self::ModifyingLetter,
22 => Self::NonJoiner,
23 => Self::Nukta,
24 => Self::Number,
25 => Self::NumberJoiner,
26 => Self::PureKiller,
27 => Self::RegisterShifter,
28 => Self::SyllableModifier,
29 => Self::ToneLetter,
30 => Self::ToneMark,
31 => Self::Virama,
32 => Self::Visarga,
33 => Self::Vowel,
34 => Self::VowelDependent,
35 => Self::VowelIndependent,
36 => Self::ReorderingKiller,
_ => return None,
})
}
}
#[diplomat::rust_link(icu::properties::props::JoiningType, Struct)]
#[diplomat::enum_convert(icu_properties::props::JoiningType, needs_wildcard)]
pub enum JoiningType {
#[diplomat::rust_link(icu::properties::props::JoiningType::NonJoining, EnumVariant)]
NonJoining = 0,
#[diplomat::rust_link(icu::properties::props::JoiningType::JoinCausing, EnumVariant)]
JoinCausing = 1,
#[diplomat::rust_link(icu::properties::props::JoiningType::DualJoining, EnumVariant)]
DualJoining = 2,
#[diplomat::rust_link(icu::properties::props::JoiningType::LeftJoining, EnumVariant)]
LeftJoining = 3,
#[diplomat::rust_link(icu::properties::props::JoiningType::RightJoining, EnumVariant)]
RightJoining = 4,
#[diplomat::rust_link(icu::properties::props::JoiningType::Transparent, EnumVariant)]
Transparent = 5,
}
impl JoiningType {
pub fn to_integer(self) -> u8 {
self as u8
}
pub fn from_integer(other: u8) -> Option<Self> {
Some(match other {
0 => Self::NonJoining,
1 => Self::JoinCausing,
2 => Self::DualJoining,
3 => Self::LeftJoining,
4 => Self::RightJoining,
5 => Self::Transparent,
_ => return None,
})
}
}
#[diplomat::rust_link(icu::properties::props::GeneralCategory, Struct)]
#[diplomat::enum_convert(icu_properties::props::GeneralCategory)]
pub enum GeneralCategory {
#[diplomat::rust_link(icu::properties::props::GeneralCategory::Unassigned, EnumVariant)]
Unassigned = 0,
#[diplomat::rust_link(
icu::properties::props::GeneralCategory::UppercaseLetter,
EnumVariant
)]
UppercaseLetter = 1,
#[diplomat::rust_link(
icu::properties::props::GeneralCategory::LowercaseLetter,
EnumVariant
)]
LowercaseLetter = 2,
#[diplomat::rust_link(
icu::properties::props::GeneralCategory::TitlecaseLetter,
EnumVariant
)]
TitlecaseLetter = 3,
#[diplomat::rust_link(
icu::properties::props::GeneralCategory::ModifierLetter,
EnumVariant
)]
ModifierLetter = 4,
#[diplomat::rust_link(icu::properties::props::GeneralCategory::OtherLetter, EnumVariant)]
OtherLetter = 5,
#[diplomat::rust_link(
icu::properties::props::GeneralCategory::NonspacingMark,
EnumVariant
)]
NonspacingMark = 6,
#[diplomat::rust_link(icu::properties::props::GeneralCategory::SpacingMark, EnumVariant)]
SpacingMark = 8,
#[diplomat::rust_link(icu::properties::props::GeneralCategory::EnclosingMark, EnumVariant)]
EnclosingMark = 7,
#[diplomat::rust_link(icu::properties::props::GeneralCategory::DecimalNumber, EnumVariant)]
DecimalNumber = 9,
#[diplomat::rust_link(icu::properties::props::GeneralCategory::LetterNumber, EnumVariant)]
LetterNumber = 10,
#[diplomat::rust_link(icu::properties::props::GeneralCategory::OtherNumber, EnumVariant)]
OtherNumber = 11,
#[diplomat::rust_link(
icu::properties::props::GeneralCategory::SpaceSeparator,
EnumVariant
)]
SpaceSeparator = 12,
#[diplomat::rust_link(icu::properties::props::GeneralCategory::LineSeparator, EnumVariant)]
LineSeparator = 13,
#[diplomat::rust_link(
icu::properties::props::GeneralCategory::ParagraphSeparator,
EnumVariant
)]
ParagraphSeparator = 14,
#[diplomat::rust_link(icu::properties::props::GeneralCategory::Control, EnumVariant)]
Control = 15,
#[diplomat::rust_link(icu::properties::props::GeneralCategory::Format, EnumVariant)]
Format = 16,
#[diplomat::rust_link(icu::properties::props::GeneralCategory::PrivateUse, EnumVariant)]
PrivateUse = 17,
#[diplomat::rust_link(icu::properties::props::GeneralCategory::Surrogate, EnumVariant)]
Surrogate = 18,
#[diplomat::rust_link(
icu::properties::props::GeneralCategory::DashPunctuation,
EnumVariant
)]
DashPunctuation = 19,
#[diplomat::rust_link(
icu::properties::props::GeneralCategory::OpenPunctuation,
EnumVariant
)]
OpenPunctuation = 20,
#[diplomat::rust_link(
icu::properties::props::GeneralCategory::ClosePunctuation,
EnumVariant
)]
ClosePunctuation = 21,
#[diplomat::rust_link(
icu::properties::props::GeneralCategory::ConnectorPunctuation,
EnumVariant
)]
ConnectorPunctuation = 22,
#[diplomat::rust_link(
icu::properties::props::GeneralCategory::InitialPunctuation,
EnumVariant
)]
InitialPunctuation = 28,
#[diplomat::rust_link(
icu::properties::props::GeneralCategory::FinalPunctuation,
EnumVariant
)]
FinalPunctuation = 29,
#[diplomat::rust_link(
icu::properties::props::GeneralCategory::OtherPunctuation,
EnumVariant
)]
OtherPunctuation = 23,
#[diplomat::rust_link(icu::properties::props::GeneralCategory::MathSymbol, EnumVariant)]
MathSymbol = 24,
#[diplomat::rust_link(
icu::properties::props::GeneralCategory::CurrencySymbol,
EnumVariant
)]
CurrencySymbol = 25,
#[diplomat::rust_link(
icu::properties::props::GeneralCategory::ModifierSymbol,
EnumVariant
)]
ModifierSymbol = 26,
#[diplomat::rust_link(icu::properties::props::GeneralCategory::OtherSymbol, EnumVariant)]
OtherSymbol = 27,
}
impl GeneralCategory {
pub fn to_integer(self) -> u8 {
self as u8
}
pub fn from_integer(other: u8) -> Option<Self> {
Some(match other {
0 => Self::Unassigned,
1 => Self::UppercaseLetter,
2 => Self::LowercaseLetter,
3 => Self::TitlecaseLetter,
4 => Self::ModifierLetter,
5 => Self::OtherLetter,
6 => Self::NonspacingMark,
8 => Self::SpacingMark,
7 => Self::EnclosingMark,
9 => Self::DecimalNumber,
10 => Self::LetterNumber,
11 => Self::OtherNumber,
12 => Self::SpaceSeparator,
13 => Self::LineSeparator,
14 => Self::ParagraphSeparator,
15 => Self::Control,
16 => Self::Format,
17 => Self::PrivateUse,
18 => Self::Surrogate,
19 => Self::DashPunctuation,
20 => Self::OpenPunctuation,
21 => Self::ClosePunctuation,
22 => Self::ConnectorPunctuation,
28 => Self::InitialPunctuation,
29 => Self::FinalPunctuation,
23 => Self::OtherPunctuation,
24 => Self::MathSymbol,
25 => Self::CurrencySymbol,
26 => Self::ModifierSymbol,
27 => Self::OtherSymbol,
_ => return None,
})
}
}
}
#[cfg(test)]
mod test {
use super::ffi::*;
use icu_properties::props;
#[test]
fn test_all_cases_covered() {
for prop in props::BidiClass::ALL_VALUES {
let ffi_prop = BidiClass::from_integer(prop.0)
.expect("Found BidiClass value not supported in ffi");
assert_eq!(prop.0, ffi_prop.to_integer());
assert_eq!(*prop, props::BidiClass::from(ffi_prop));
}
for prop in props::Script::ALL_VALUES {
let ffi_prop =
Script::from_integer(prop.0).expect("Found Script value not supported in ffi");
assert_eq!(prop.0, ffi_prop.to_integer());
assert_eq!(*prop, props::Script::from(ffi_prop));
}
for prop in props::HangulSyllableType::ALL_VALUES {
let ffi_prop = HangulSyllableType::from_integer(prop.0)
.expect("Found HangulSyllableType value not supported in ffi");
assert_eq!(prop.0, ffi_prop.to_integer());
assert_eq!(*prop, props::HangulSyllableType::from(ffi_prop));
}
for prop in props::EastAsianWidth::ALL_VALUES {
let ffi_prop = EastAsianWidth::from_integer(prop.0)
.expect("Found EastAsianWidth value not supported in ffi");
assert_eq!(prop.0, ffi_prop.to_integer());
assert_eq!(*prop, props::EastAsianWidth::from(ffi_prop));
}
for prop in props::LineBreak::ALL_VALUES {
let ffi_prop = LineBreak::from_integer(prop.0)
.expect("Found LineBreak value not supported in ffi");
assert_eq!(prop.0, ffi_prop.to_integer());
assert_eq!(*prop, props::LineBreak::from(ffi_prop));
}
for prop in props::GraphemeClusterBreak::ALL_VALUES {
let ffi_prop = GraphemeClusterBreak::from_integer(prop.0)
.expect("Found GraphemeClusterBreak value not supported in ffi");
assert_eq!(prop.0, ffi_prop.to_integer());
assert_eq!(*prop, props::GraphemeClusterBreak::from(ffi_prop));
}
for prop in props::WordBreak::ALL_VALUES {
let ffi_prop = WordBreak::from_integer(prop.0)
.expect("Found WordBreak value not supported in ffi");
assert_eq!(prop.0, ffi_prop.to_integer());
assert_eq!(*prop, props::WordBreak::from(ffi_prop));
}
for prop in props::SentenceBreak::ALL_VALUES {
let ffi_prop = SentenceBreak::from_integer(prop.0)
.expect("Found SentenceBreak value not supported in ffi");
assert_eq!(prop.0, ffi_prop.to_integer());
assert_eq!(*prop, props::SentenceBreak::from(ffi_prop));
}
for prop in props::CanonicalCombiningClass::ALL_VALUES {
let ffi_prop = CanonicalCombiningClass::from_integer(prop.0)
.expect("Found CanonicalCombiningClass value not supported in ffi");
assert_eq!(prop.0, ffi_prop.to_integer());
assert_eq!(*prop, props::CanonicalCombiningClass::from(ffi_prop));
}
for prop in props::IndicSyllabicCategory::ALL_VALUES {
let ffi_prop = IndicSyllabicCategory::from_integer(prop.0)
.expect("Found IndicSyllabicCategory value not supported in ffi");
assert_eq!(prop.0, ffi_prop.to_integer());
assert_eq!(*prop, props::IndicSyllabicCategory::from(ffi_prop));
}
for prop in props::JoiningType::ALL_VALUES {
let ffi_prop = JoiningType::from_integer(prop.0)
.expect("Found JoiningType value not supported in ffi");
assert_eq!(prop.0, ffi_prop.to_integer());
assert_eq!(*prop, props::JoiningType::from(ffi_prop));
}
for prop in props::GeneralCategory::ALL_VALUES {
let ffi_prop = GeneralCategory::from_integer(*prop as u8)
.expect("Found GeneralCategory value not supported in ffi");
assert_eq!(*prop as u8, ffi_prop.to_integer());
assert_eq!(*prop, props::GeneralCategory::from(ffi_prop));
}
}
}