| const PRIMARY_LANGUAGE_MASK: u16 = 0x03FF; | |
| const SUB_LANGUAGE_MASK: u16 = 0xFC00; | |
| /// A language used to read string descriptors from USB devices. | |
| /// | |
| /// A language consists of a primary language and a sub language. Primary languages are language | |
| /// families, such as English or Spanish. Sub languages identify a dialect of the primary language. | |
| /// The dialect may be based on regional differences (United States English compared to United | |
| /// Kingdom English), writing systems (Cyrillic compared to Latin), or age (Modern compared to | |
| /// Traditional). Each primary language has its own set of sub languages. | |
| #[derive(Debug, Copy, Clone, PartialEq, Eq)] | |
| pub struct Language { | |
| raw: u16, | |
| } | |
| impl Language { | |
| /// Returns the language's 16-bit `LANGID`. | |
| /// | |
| /// Each language's `LANGID` is defined by the USB forum | |
| /// <https://learn.microsoft.com/en-us/windows/win32/intl/language-identifier-constants-and-strings>. | |
| pub fn lang_id(self) -> u16 { | |
| self.raw | |
| } | |
| /// Returns the primary language. | |
| pub fn primary_language(self) -> PrimaryLanguage { | |
| PrimaryLanguage::from_raw(self.raw) | |
| } | |
| /// Returns the sub language. | |
| pub fn sub_language(self) -> SubLanguage { | |
| SubLanguage::from_raw(self.primary_language(), self.raw) | |
| } | |
| } | |
| #[doc(hidden)] | |
| pub(crate) fn from_lang_id(raw: u16) -> Language { | |
| Language { raw } | |
| } | |
| /// Primary language families. | |
| #[derive(Debug, Copy, Clone, PartialEq, Eq)] | |
| pub enum PrimaryLanguage { | |
| Afrikaans, | |
| Albanian, | |
| Arabic, | |
| Armenian, | |
| Assamese, | |
| Azeri, | |
| Basque, | |
| Belarussian, | |
| Bengali, | |
| Bulgarian, | |
| Burmese, | |
| Catalan, | |
| Chinese, | |
| Croatian, | |
| Czech, | |
| Danish, | |
| Dutch, | |
| English, | |
| Estonian, | |
| Faeroese, | |
| Farsi, | |
| Finnish, | |
| French, | |
| Georgian, | |
| German, | |
| Greek, | |
| Gujarati, | |
| Hebrew, | |
| Hindi, | |
| Hungarian, | |
| Icelandic, | |
| Indonesian, | |
| Italian, | |
| Japanese, | |
| Kannada, | |
| Kashmiri, | |
| Kazakh, | |
| Konkani, | |
| Korean, | |
| Latvian, | |
| Lithuanian, | |
| Macedonian, | |
| Malay, | |
| Malayalam, | |
| Manipuri, | |
| Marathi, | |
| Nepali, | |
| Norwegian, | |
| Oriya, | |
| Polish, | |
| Portuguese, | |
| Punjabi, | |
| Romanian, | |
| Russian, | |
| Sanskrit, | |
| Serbian, | |
| Sindhi, | |
| Slovak, | |
| Slovenian, | |
| Spanish, | |
| Sutu, | |
| Swahili, | |
| Swedish, | |
| Tamil, | |
| Tatar, | |
| Telugu, | |
| Thai, | |
| Turkish, | |
| Ukrainian, | |
| Urdu, | |
| Uzbek, | |
| Vietnamese, | |
| HID, | |
| Other(u16), | |
| } | |
| impl PrimaryLanguage { | |
| fn from_raw(raw: u16) -> PrimaryLanguage { | |
| match raw & PRIMARY_LANGUAGE_MASK { | |
| 0x0036 => PrimaryLanguage::Afrikaans, | |
| 0x001C => PrimaryLanguage::Albanian, | |
| 0x0001 => PrimaryLanguage::Arabic, | |
| 0x002B => PrimaryLanguage::Armenian, | |
| 0x004D => PrimaryLanguage::Assamese, | |
| 0x002C => PrimaryLanguage::Azeri, | |
| 0x002D => PrimaryLanguage::Basque, | |
| 0x0023 => PrimaryLanguage::Belarussian, | |
| 0x0045 => PrimaryLanguage::Bengali, | |
| 0x0002 => PrimaryLanguage::Bulgarian, | |
| 0x0055 => PrimaryLanguage::Burmese, | |
| 0x0003 => PrimaryLanguage::Catalan, | |
| 0x0004 => PrimaryLanguage::Chinese, | |
| 0x001A => match raw & SUB_LANGUAGE_MASK { | |
| 0x0400 => PrimaryLanguage::Croatian, | |
| _ => PrimaryLanguage::Serbian, | |
| }, | |
| 0x0005 => PrimaryLanguage::Czech, | |
| 0x0006 => PrimaryLanguage::Danish, | |
| 0x0013 => PrimaryLanguage::Dutch, | |
| 0x0009 => PrimaryLanguage::English, | |
| 0x0025 => PrimaryLanguage::Estonian, | |
| 0x0038 => PrimaryLanguage::Faeroese, | |
| 0x0029 => PrimaryLanguage::Farsi, | |
| 0x000B => PrimaryLanguage::Finnish, | |
| 0x000C => PrimaryLanguage::French, | |
| 0x0037 => PrimaryLanguage::Georgian, | |
| 0x0007 => PrimaryLanguage::German, | |
| 0x0008 => PrimaryLanguage::Greek, | |
| 0x0047 => PrimaryLanguage::Gujarati, | |
| 0x000D => PrimaryLanguage::Hebrew, | |
| 0x0039 => PrimaryLanguage::Hindi, | |
| 0x000E => PrimaryLanguage::Hungarian, | |
| 0x000F => PrimaryLanguage::Icelandic, | |
| 0x0021 => PrimaryLanguage::Indonesian, | |
| 0x0010 => PrimaryLanguage::Italian, | |
| 0x0011 => PrimaryLanguage::Japanese, | |
| 0x004B => PrimaryLanguage::Kannada, | |
| 0x0060 => PrimaryLanguage::Kashmiri, | |
| 0x003F => PrimaryLanguage::Kazakh, | |
| 0x0057 => PrimaryLanguage::Konkani, | |
| 0x0012 => PrimaryLanguage::Korean, | |
| 0x0026 => PrimaryLanguage::Latvian, | |
| 0x0027 => PrimaryLanguage::Lithuanian, | |
| 0x002F => PrimaryLanguage::Macedonian, | |
| 0x003E => PrimaryLanguage::Malay, | |
| 0x004C => PrimaryLanguage::Malayalam, | |
| 0x0058 => PrimaryLanguage::Manipuri, | |
| 0x004E => PrimaryLanguage::Marathi, | |
| 0x0061 => PrimaryLanguage::Nepali, | |
| 0x0014 => PrimaryLanguage::Norwegian, | |
| 0x0048 => PrimaryLanguage::Oriya, | |
| 0x0015 => PrimaryLanguage::Polish, | |
| 0x0016 => PrimaryLanguage::Portuguese, | |
| 0x0046 => PrimaryLanguage::Punjabi, | |
| 0x0018 => PrimaryLanguage::Romanian, | |
| 0x0019 => PrimaryLanguage::Russian, | |
| 0x004F => PrimaryLanguage::Sanskrit, | |
| 0x0059 => PrimaryLanguage::Sindhi, | |
| 0x001B => PrimaryLanguage::Slovak, | |
| 0x0024 => PrimaryLanguage::Slovenian, | |
| 0x000A => PrimaryLanguage::Spanish, | |
| 0x0030 => PrimaryLanguage::Sutu, | |
| 0x0041 => PrimaryLanguage::Swahili, | |
| 0x001D => PrimaryLanguage::Swedish, | |
| 0x0049 => PrimaryLanguage::Tamil, | |
| 0x0044 => PrimaryLanguage::Tatar, | |
| 0x004A => PrimaryLanguage::Telugu, | |
| 0x001E => PrimaryLanguage::Thai, | |
| 0x001F => PrimaryLanguage::Turkish, | |
| 0x0022 => PrimaryLanguage::Ukrainian, | |
| 0x0020 => PrimaryLanguage::Urdu, | |
| 0x0043 => PrimaryLanguage::Uzbek, | |
| 0x002A => PrimaryLanguage::Vietnamese, | |
| 0x00FF => PrimaryLanguage::HID, | |
| n => PrimaryLanguage::Other(n), | |
| } | |
| } | |
| } | |
| /// Language dialects and writing systems. | |
| #[derive(Debug, Copy, Clone, PartialEq, Eq)] | |
| pub enum SubLanguage { | |
| Standard, | |
| Classic, | |
| Traditional, | |
| Modern, | |
| Algeria, // arabic | |
| Argentina, // spanish | |
| Australia, // english | |
| Austria, // german | |
| Bahrain, // arabic | |
| Belgium, // dutch, french | |
| Belize, // english | |
| Bokmal, // norwegian | |
| Bolivia, // spanish | |
| Brazil, // portuguese | |
| BruneiDarussalam, // malay | |
| Canada, // english, french | |
| Caribbean, // english | |
| Chile, // spanish | |
| China, // chinese | |
| Colombia, // spanish | |
| CostaRica, // spanish | |
| Cyrillic, // azeri, serbian, uzbek | |
| DominicanRepublic, // spanish | |
| Ecuador, // spanish | |
| Egypt, // arabic | |
| ElSalvador, // spanish | |
| Finland, // swedish | |
| Guatemala, // spanish | |
| Honduras, // spanish | |
| HongKong, // chinese | |
| India, // kashmiri, nepali, urdu | |
| Iraq, // arabic | |
| Ireland, // english | |
| Jamaica, // english | |
| Johab, // korean | |
| Jordan, // arabic | |
| Kuwait, // arabic | |
| Latin, // azeri, serbian, uzbek | |
| Lebanon, // arabic | |
| Libya, // arabic | |
| Liechtenstein, // german | |
| Luxembourg, // french, german | |
| Macau, // chinese | |
| Malaysia, // malay | |
| Mexico, // spanish | |
| Monaco, // french | |
| Morocco, // arabic | |
| Netherlands, // dutch | |
| NewZealand, // english | |
| Nicaragua, // spanish | |
| Nynorsk, // norwegian | |
| Oman, // arabic | |
| Pakistan, // urdu | |
| Panama, // spanish | |
| Paraguay, // spanish | |
| Peru, // spanish | |
| Philippines, // english | |
| PuertoRico, // spanish | |
| Qatar, // arabic | |
| SaudiArabia, // arabic | |
| Singapore, // chinese | |
| SouthAfrica, // english | |
| Switzerland, // french, german, italian | |
| Syria, // arabic | |
| Taiwan, // chinese | |
| Trinidad, // english | |
| Tunisia, // arabic | |
| UnitedArabEmirates, // arabic | |
| UnitedKingdom, // english | |
| UnitedStates, // english | |
| Uruguay, // spanish | |
| Venezuela, // spanish | |
| Yemen, // arabic | |
| Zimbabwe, // english | |
| UsageDataDescriptor, // HID | |
| VendorDefined1, // HID | |
| VendorDefined2, // HID | |
| VendorDefined3, // HID | |
| VendorDefined4, // HID | |
| Other(u16), | |
| } | |
| impl SubLanguage { | |
| fn from_raw(language: PrimaryLanguage, raw: u16) -> SubLanguage { | |
| match language { | |
| PrimaryLanguage::Arabic => match raw & SUB_LANGUAGE_MASK { | |
| 0x0400 => SubLanguage::SaudiArabia, | |
| 0x0800 => SubLanguage::Iraq, | |
| 0x0C00 => SubLanguage::Egypt, | |
| 0x1000 => SubLanguage::Libya, | |
| 0x1400 => SubLanguage::Algeria, | |
| 0x1800 => SubLanguage::Morocco, | |
| 0x1C00 => SubLanguage::Tunisia, | |
| 0x2000 => SubLanguage::Oman, | |
| 0x2400 => SubLanguage::Yemen, | |
| 0x2800 => SubLanguage::Syria, | |
| 0x2C00 => SubLanguage::Jordan, | |
| 0x3000 => SubLanguage::Lebanon, | |
| 0x3400 => SubLanguage::Kuwait, | |
| 0x3800 => SubLanguage::UnitedArabEmirates, | |
| 0x3C00 => SubLanguage::Bahrain, | |
| 0x4000 => SubLanguage::Qatar, | |
| n => SubLanguage::Other(n), | |
| }, | |
| PrimaryLanguage::Azeri => match raw & SUB_LANGUAGE_MASK { | |
| 0x0400 => SubLanguage::Latin, | |
| 0x0800 => SubLanguage::Cyrillic, | |
| n => SubLanguage::Other(n), | |
| }, | |
| PrimaryLanguage::Chinese => match raw & SUB_LANGUAGE_MASK { | |
| 0x0400 => SubLanguage::Taiwan, | |
| 0x0800 => SubLanguage::China, | |
| 0x0C00 => SubLanguage::HongKong, | |
| 0x1000 => SubLanguage::Singapore, | |
| 0x1400 => SubLanguage::Macau, | |
| n => SubLanguage::Other(n), | |
| }, | |
| PrimaryLanguage::Dutch => match raw & SUB_LANGUAGE_MASK { | |
| 0x0400 => SubLanguage::Netherlands, | |
| 0x0800 => SubLanguage::Belgium, | |
| n => SubLanguage::Other(n), | |
| }, | |
| PrimaryLanguage::English => match raw & SUB_LANGUAGE_MASK { | |
| 0x0400 => SubLanguage::UnitedStates, | |
| 0x0800 => SubLanguage::UnitedKingdom, | |
| 0x0C00 => SubLanguage::Australia, | |
| 0x1000 => SubLanguage::Canada, | |
| 0x1400 => SubLanguage::NewZealand, | |
| 0x1800 => SubLanguage::Ireland, | |
| 0x1C00 => SubLanguage::SouthAfrica, | |
| 0x2000 => SubLanguage::Jamaica, | |
| 0x2400 => SubLanguage::Caribbean, | |
| 0x2800 => SubLanguage::Belize, | |
| 0x2C00 => SubLanguage::Trinidad, | |
| 0x3000 => SubLanguage::Zimbabwe, | |
| 0x3400 => SubLanguage::Philippines, | |
| n => SubLanguage::Other(n), | |
| }, | |
| PrimaryLanguage::French => match raw & SUB_LANGUAGE_MASK { | |
| 0x0400 => SubLanguage::Standard, | |
| 0x0800 => SubLanguage::Belgium, | |
| 0x0C00 => SubLanguage::Canada, | |
| 0x1000 => SubLanguage::Switzerland, | |
| 0x1400 => SubLanguage::Luxembourg, | |
| 0x1800 => SubLanguage::Monaco, | |
| n => SubLanguage::Other(n), | |
| }, | |
| PrimaryLanguage::German => match raw & SUB_LANGUAGE_MASK { | |
| 0x0400 => SubLanguage::Standard, | |
| 0x0800 => SubLanguage::Switzerland, | |
| 0x0C00 => SubLanguage::Austria, | |
| 0x1000 => SubLanguage::Luxembourg, | |
| 0x1400 => SubLanguage::Liechtenstein, | |
| n => SubLanguage::Other(n), | |
| }, | |
| PrimaryLanguage::Italian => match raw & SUB_LANGUAGE_MASK { | |
| 0x0400 => SubLanguage::Standard, | |
| 0x0800 => SubLanguage::Switzerland, | |
| n => SubLanguage::Other(n), | |
| }, | |
| PrimaryLanguage::Korean => match raw & SUB_LANGUAGE_MASK { | |
| 0x0400 => SubLanguage::Standard, | |
| 0x0800 => SubLanguage::Johab, | |
| n => SubLanguage::Other(n), | |
| }, | |
| PrimaryLanguage::Lithuanian => match raw & SUB_LANGUAGE_MASK { | |
| 0x0400 => SubLanguage::Standard, | |
| 0x0800 => SubLanguage::Classic, | |
| n => SubLanguage::Other(n), | |
| }, | |
| PrimaryLanguage::Malay => match raw & SUB_LANGUAGE_MASK { | |
| 0x0400 => SubLanguage::Malaysia, | |
| 0x0800 => SubLanguage::BruneiDarussalam, | |
| n => SubLanguage::Other(n), | |
| }, | |
| PrimaryLanguage::Norwegian => match raw & SUB_LANGUAGE_MASK { | |
| 0x0400 => SubLanguage::Bokmal, | |
| 0x0800 => SubLanguage::Nynorsk, | |
| n => SubLanguage::Other(n), | |
| }, | |
| PrimaryLanguage::Portuguese => match raw & SUB_LANGUAGE_MASK { | |
| 0x0400 => SubLanguage::Brazil, | |
| 0x0800 => SubLanguage::Standard, | |
| n => SubLanguage::Other(n), | |
| }, | |
| PrimaryLanguage::Serbian => match raw & SUB_LANGUAGE_MASK { | |
| 0x0C00 => SubLanguage::Cyrillic, | |
| 0x0800 => SubLanguage::Latin, | |
| n => SubLanguage::Other(n), | |
| }, | |
| PrimaryLanguage::Spanish => match raw & SUB_LANGUAGE_MASK { | |
| 0x0400 => SubLanguage::Traditional, | |
| 0x0800 => SubLanguage::Mexico, | |
| 0x0C00 => SubLanguage::Modern, | |
| 0x1000 => SubLanguage::Guatemala, | |
| 0x1400 => SubLanguage::CostaRica, | |
| 0x1800 => SubLanguage::Panama, | |
| 0x1C00 => SubLanguage::DominicanRepublic, | |
| 0x2000 => SubLanguage::Venezuela, | |
| 0x2400 => SubLanguage::Colombia, | |
| 0x2800 => SubLanguage::Peru, | |
| 0x2C00 => SubLanguage::Argentina, | |
| 0x3000 => SubLanguage::Ecuador, | |
| 0x3400 => SubLanguage::Chile, | |
| 0x3800 => SubLanguage::Uruguay, | |
| 0x3C00 => SubLanguage::Paraguay, | |
| 0x4000 => SubLanguage::Bolivia, | |
| 0x4400 => SubLanguage::ElSalvador, | |
| 0x4800 => SubLanguage::Honduras, | |
| 0x4C00 => SubLanguage::Nicaragua, | |
| 0x5000 => SubLanguage::PuertoRico, | |
| n => SubLanguage::Other(n), | |
| }, | |
| PrimaryLanguage::Swedish => match raw & SUB_LANGUAGE_MASK { | |
| 0x0400 => SubLanguage::Standard, | |
| 0x0800 => SubLanguage::Finland, | |
| n => SubLanguage::Other(n), | |
| }, | |
| PrimaryLanguage::Urdu => match raw & SUB_LANGUAGE_MASK { | |
| 0x0400 => SubLanguage::Pakistan, | |
| 0x0800 => SubLanguage::India, | |
| n => SubLanguage::Other(n), | |
| }, | |
| PrimaryLanguage::Uzbek => match raw & SUB_LANGUAGE_MASK { | |
| 0x0400 => SubLanguage::Latin, | |
| 0x0800 => SubLanguage::Cyrillic, | |
| n => SubLanguage::Other(n), | |
| }, | |
| PrimaryLanguage::HID => match raw & SUB_LANGUAGE_MASK { | |
| 0x0400 => SubLanguage::UsageDataDescriptor, | |
| 0xF000 => SubLanguage::VendorDefined1, | |
| 0xF400 => SubLanguage::VendorDefined2, | |
| 0xF800 => SubLanguage::VendorDefined3, | |
| 0xFC00 => SubLanguage::VendorDefined4, | |
| n => SubLanguage::Other(n), | |
| }, | |
| PrimaryLanguage::Other(_) => SubLanguage::Other(raw & SUB_LANGUAGE_MASK), | |
| _ => SubLanguage::Standard, | |
| } | |
| } | |
| } | |
| #[cfg(test)] | |
| mod test { | |
| use super::{PrimaryLanguage, SubLanguage}; | |
| use super::{PRIMARY_LANGUAGE_MASK, SUB_LANGUAGE_MASK}; | |
| // language ids defined in http://www.usb.org/developers/docs/USB_LANGIDs.pdf | |
| const AFRIKAANS: u16 = 0x0436; | |
| const ALBANIAN: u16 = 0x041C; | |
| const ARABIC_SAUDI_ARABIA: u16 = 0x0401; | |
| const ARABIC_IRAQ: u16 = 0x0801; | |
| const ARABIC_EGYPT: u16 = 0x0C01; | |
| const ARABIC_LIBYA: u16 = 0x1001; | |
| const ARABIC_ALGERIA: u16 = 0x1401; | |
| const ARABIC_MOROCCO: u16 = 0x1801; | |
| const ARABIC_TUNISIA: u16 = 0x1C01; | |
| const ARABIC_OMAN: u16 = 0x2001; | |
| const ARABIC_YEMEN: u16 = 0x2401; | |
| const ARABIC_SYRIA: u16 = 0x2801; | |
| const ARABIC_JORDAN: u16 = 0x2C01; | |
| const ARABIC_LEBANON: u16 = 0x3001; | |
| const ARABIC_KUWAIT: u16 = 0x3401; | |
| const ARABIC_UAE: u16 = 0x3801; | |
| const ARABIC_BAHRAIN: u16 = 0x3C01; | |
| const ARABIC_QATAR: u16 = 0x4001; | |
| const ARMENIAN: u16 = 0x042B; | |
| const ASSAMESE: u16 = 0x044D; | |
| const AZERI_LATIN: u16 = 0x042C; | |
| const AZERI_CYRILLIC: u16 = 0x082C; | |
| const BASQUE: u16 = 0x042D; | |
| const BELARUSSIAN: u16 = 0x0423; | |
| const BENGALI: u16 = 0x0445; | |
| const BULGARIAN: u16 = 0x0402; | |
| const BURMESE: u16 = 0x0455; | |
| const CATALAN: u16 = 0x0403; | |
| const CHINESE_TAIWAN: u16 = 0x0404; | |
| const CHINESE_CHINA: u16 = 0x0804; | |
| const CHINESE_HONG_KONG: u16 = 0x0C04; | |
| const CHINESE_SINGAPORE: u16 = 0x1004; | |
| const CHINESE_MACAU: u16 = 0x1404; | |
| const CROATIAN: u16 = 0x041A; | |
| const CZECH: u16 = 0x0405; | |
| const DANISH: u16 = 0x0406; | |
| const DUTCH_NETHERLANDS: u16 = 0x0413; | |
| const DUTCH_BELGIUM: u16 = 0x0813; | |
| const ENGLISH_UNITED_STATES: u16 = 0x0409; | |
| const ENGLISH_UNITED_KINGDOM: u16 = 0x0809; | |
| const ENGLISH_AUSTRALIAN: u16 = 0x0C09; | |
| const ENGLISH_CANADIAN: u16 = 0x1009; | |
| const ENGLISH_NEW_ZEALAND: u16 = 0x1409; | |
| const ENGLISH_IRELAND: u16 = 0x1809; | |
| const ENGLISH_SOUTH_AFRICA: u16 = 0x1C09; | |
| const ENGLISH_JAMAICA: u16 = 0x2009; | |
| const ENGLISH_CARIBBEAN: u16 = 0x2409; | |
| const ENGLISH_BELIZE: u16 = 0x2809; | |
| const ENGLISH_TRINIDAD: u16 = 0x2C09; | |
| const ENGLISH_ZIMBABWE: u16 = 0x3009; | |
| const ENGLISH_PHILIPPINES: u16 = 0x3409; | |
| const ESTONIAN: u16 = 0x0425; | |
| const FAEROESE: u16 = 0x0438; | |
| const FARSI: u16 = 0x0429; | |
| const FINNISH: u16 = 0x040B; | |
| const FRENCH_STANDARD: u16 = 0x040C; | |
| const FRENCH_BELGIAN: u16 = 0x080C; | |
| const FRENCH_CANADIAN: u16 = 0x0C0C; | |
| const FRENCH_SWITZERLAND: u16 = 0x100C; | |
| const FRENCH_LUXEMBOURG: u16 = 0x140C; | |
| const FRENCH_MONACO: u16 = 0x180C; | |
| const GEORGIAN: u16 = 0x0437; | |
| const GERMAN_STANDARD: u16 = 0x0407; | |
| const GERMAN_SWITZERLAND: u16 = 0x0807; | |
| const GERMAN_AUSTRIA: u16 = 0x0C07; | |
| const GERMAN_LUXEMBOURG: u16 = 0x1007; | |
| const GERMAN_LIECHTENSTEIN: u16 = 0x1407; | |
| const GREEK: u16 = 0x0408; | |
| const GUJARATI: u16 = 0x0447; | |
| const HEBREW: u16 = 0x040D; | |
| const HINDI: u16 = 0x0439; | |
| const HUNGARIAN: u16 = 0x040E; | |
| const ICELANDIC: u16 = 0x040F; | |
| const INDONESIAN: u16 = 0x0421; | |
| const ITALIAN_STANDARD: u16 = 0x0410; | |
| const ITALIAN_SWITZERLAND: u16 = 0x0810; | |
| const JAPANESE: u16 = 0x0411; | |
| const KANNADA: u16 = 0x044B; | |
| const KASHMIRI_INDIA: u16 = 0x0860; | |
| const KAZAKH: u16 = 0x043F; | |
| const KONKANI: u16 = 0x0457; | |
| const KOREAN: u16 = 0x0412; | |
| const KOREAN_JOHAB: u16 = 0x0812; | |
| const LATVIAN: u16 = 0x0426; | |
| const LITHUANIAN: u16 = 0x0427; | |
| const LITHUANIAN_CLASSIC: u16 = 0x0827; | |
| const MACEDONIAN: u16 = 0x042F; | |
| const MALAY_MALAYSIAN: u16 = 0x043E; | |
| const MALAY_BRUNEI_DARUSSALAM: u16 = 0x083E; | |
| const MALAYALAM: u16 = 0x044C; | |
| const MANIPURI: u16 = 0x0458; | |
| const MARATHI: u16 = 0x044E; | |
| const NEPALI_INDIA: u16 = 0x0861; | |
| const NORWEGIAN_BOKMAL: u16 = 0x0414; | |
| const NORWEGIAN_NYNORSK: u16 = 0x0814; | |
| const ORIYA: u16 = 0x0448; | |
| const POLISH: u16 = 0x0415; | |
| const PORTUGUESE_BRAZIL: u16 = 0x0416; | |
| const PORTUGUESE_STANDARD: u16 = 0x0816; | |
| const PUNJABI: u16 = 0x0446; | |
| const ROMANIAN: u16 = 0x0418; | |
| const RUSSIAN: u16 = 0x0419; | |
| const SANSKRIT: u16 = 0x044F; | |
| const SERBIAN_CYRILLIC: u16 = 0x0C1A; | |
| const SERBIAN_LATIN: u16 = 0x081A; | |
| const SINDHI: u16 = 0x0459; | |
| const SLOVAK: u16 = 0x041B; | |
| const SLOVENIAN: u16 = 0x0424; | |
| const SPANISH_TRADITIONAL_SORT: u16 = 0x040A; | |
| const SPANISH_MEXICAN: u16 = 0x080A; | |
| const SPANISH_MODERN_SORT: u16 = 0x0C0A; | |
| const SPANISH_GUATEMALA: u16 = 0x100A; | |
| const SPANISH_COSTA_RICA: u16 = 0x140A; | |
| const SPANISH_PANAMA: u16 = 0x180A; | |
| const SPANISH_DOMINICAN_REPUBLIC: u16 = 0x1C0A; | |
| const SPANISH_VENEZUELA: u16 = 0x200A; | |
| const SPANISH_COLOMBIA: u16 = 0x240A; | |
| const SPANISH_PERU: u16 = 0x280A; | |
| const SPANISH_ARGENTINA: u16 = 0x2C0A; | |
| const SPANISH_ECUADOR: u16 = 0x300A; | |
| const SPANISH_CHILE: u16 = 0x340A; | |
| const SPANISH_URUGUAY: u16 = 0x380A; | |
| const SPANISH_PARAGUAY: u16 = 0x3C0A; | |
| const SPANISH_BOLIVIA: u16 = 0x400A; | |
| const SPANISH_EL_SALVADOR: u16 = 0x440A; | |
| const SPANISH_HONDURAS: u16 = 0x480A; | |
| const SPANISH_NICARAGUA: u16 = 0x4C0A; | |
| const SPANISH_PUERTO_RICO: u16 = 0x500A; | |
| const SUTU: u16 = 0x0430; | |
| const SWAHILI_KENYA: u16 = 0x0441; | |
| const SWEDISH: u16 = 0x041D; | |
| const SWEDISH_FINLAND: u16 = 0x081D; | |
| const TAMIL: u16 = 0x0449; | |
| const TATAR_TATARSTAN: u16 = 0x0444; | |
| const TELUGU: u16 = 0x044A; | |
| const THAI: u16 = 0x041E; | |
| const TURKISH: u16 = 0x041F; | |
| const UKRAINIAN: u16 = 0x0422; | |
| const URDU_PAKISTAN: u16 = 0x0420; | |
| const URDU_INDIA: u16 = 0x0820; | |
| const UZBEK_LATIN: u16 = 0x0443; | |
| const UZBEK_CYRILLIC: u16 = 0x0843; | |
| const VIETNAMESE: u16 = 0x042A; | |
| const HID_USAGE_DATA_DESCRIPTOR: u16 = 0x04FF; | |
| const HID_VENDOR_DEFINED_1: u16 = 0xF0FF; | |
| const HID_VENDOR_DEFINED_2: u16 = 0xF4FF; | |
| const HID_VENDOR_DEFINED_3: u16 = 0xF8FF; | |
| const HID_VENDOR_DEFINED_4: u16 = 0xFCFF; | |
| #[test] | |
| fn it_recognizes_afrikaans_as_afrikaans_language() { | |
| assert_eq!( | |
| super::from_lang_id(AFRIKAANS).primary_language(), | |
| PrimaryLanguage::Afrikaans | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_albanian_as_albanian_language() { | |
| assert_eq!( | |
| super::from_lang_id(ALBANIAN).primary_language(), | |
| PrimaryLanguage::Albanian | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_arabic_from_saudi_arabia_as_arabic_language() { | |
| assert_eq!( | |
| super::from_lang_id(ARABIC_SAUDI_ARABIA).primary_language(), | |
| PrimaryLanguage::Arabic | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_arabic_from_saudi_arabia_as_saudi_arabia_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(ARABIC_SAUDI_ARABIA).sub_language(), | |
| SubLanguage::SaudiArabia | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_arabic_from_iraq_as_arabic_language() { | |
| assert_eq!( | |
| super::from_lang_id(ARABIC_IRAQ).primary_language(), | |
| PrimaryLanguage::Arabic | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_arabic_from_iraq_as_iraq_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(ARABIC_IRAQ).sub_language(), | |
| SubLanguage::Iraq | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_arabic_from_egypt_as_arabic_language() { | |
| assert_eq!( | |
| super::from_lang_id(ARABIC_EGYPT).primary_language(), | |
| PrimaryLanguage::Arabic | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_arabic_from_egypt_as_egypt_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(ARABIC_EGYPT).sub_language(), | |
| SubLanguage::Egypt | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_arabic_from_libya_as_arabic_language() { | |
| assert_eq!( | |
| super::from_lang_id(ARABIC_LIBYA).primary_language(), | |
| PrimaryLanguage::Arabic | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_arabic_from_libya_as_libya_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(ARABIC_LIBYA).sub_language(), | |
| SubLanguage::Libya | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_arabic_from_algeria_as_arabic_language() { | |
| assert_eq!( | |
| super::from_lang_id(ARABIC_ALGERIA).primary_language(), | |
| PrimaryLanguage::Arabic | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_arabic_from_algeria_as_algeria_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(ARABIC_ALGERIA).sub_language(), | |
| SubLanguage::Algeria | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_arabic_from_morocco_as_arabic_language() { | |
| assert_eq!( | |
| super::from_lang_id(ARABIC_MOROCCO).primary_language(), | |
| PrimaryLanguage::Arabic | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_arabic_from_morocco_as_morocco_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(ARABIC_MOROCCO).sub_language(), | |
| SubLanguage::Morocco | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_arabic_from_tunisia_as_arabic_language() { | |
| assert_eq!( | |
| super::from_lang_id(ARABIC_TUNISIA).primary_language(), | |
| PrimaryLanguage::Arabic | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_arabic_from_tunisia_as_tunisia_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(ARABIC_TUNISIA).sub_language(), | |
| SubLanguage::Tunisia | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_arabic_from_oman_as_arabic_language() { | |
| assert_eq!( | |
| super::from_lang_id(ARABIC_OMAN).primary_language(), | |
| PrimaryLanguage::Arabic | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_arabic_from_oman_as_oman_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(ARABIC_OMAN).sub_language(), | |
| SubLanguage::Oman | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_arabic_from_yemen_as_arabic_language() { | |
| assert_eq!( | |
| super::from_lang_id(ARABIC_YEMEN).primary_language(), | |
| PrimaryLanguage::Arabic | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_arabic_from_yemen_as_yemen_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(ARABIC_YEMEN).sub_language(), | |
| SubLanguage::Yemen | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_arabic_from_syria_as_arabic_language() { | |
| assert_eq!( | |
| super::from_lang_id(ARABIC_SYRIA).primary_language(), | |
| PrimaryLanguage::Arabic | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_arabic_from_syria_as_syria_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(ARABIC_SYRIA).sub_language(), | |
| SubLanguage::Syria | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_arabic_from_jordan_as_arabic_language() { | |
| assert_eq!( | |
| super::from_lang_id(ARABIC_JORDAN).primary_language(), | |
| PrimaryLanguage::Arabic | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_arabic_from_jordan_as_jordan_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(ARABIC_JORDAN).sub_language(), | |
| SubLanguage::Jordan | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_arabic_from_lebanon_as_arabic_language() { | |
| assert_eq!( | |
| super::from_lang_id(ARABIC_LEBANON).primary_language(), | |
| PrimaryLanguage::Arabic | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_arabic_from_lebanon_as_lebanon_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(ARABIC_LEBANON).sub_language(), | |
| SubLanguage::Lebanon | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_arabic_from_kuwait_as_arabic_language() { | |
| assert_eq!( | |
| super::from_lang_id(ARABIC_KUWAIT).primary_language(), | |
| PrimaryLanguage::Arabic | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_arabic_from_kuwait_as_kuwait_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(ARABIC_KUWAIT).sub_language(), | |
| SubLanguage::Kuwait | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_arabic_from_uae_as_arabic_language() { | |
| assert_eq!( | |
| super::from_lang_id(ARABIC_UAE).primary_language(), | |
| PrimaryLanguage::Arabic | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_arabic_from_uae_as_uae_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(ARABIC_UAE).sub_language(), | |
| SubLanguage::UnitedArabEmirates | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_arabic_from_bahrain_as_arabic_language() { | |
| assert_eq!( | |
| super::from_lang_id(ARABIC_BAHRAIN).primary_language(), | |
| PrimaryLanguage::Arabic | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_arabic_from_bahrain_as_bahrain_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(ARABIC_BAHRAIN).sub_language(), | |
| SubLanguage::Bahrain | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_arabic_from_qatar_as_arabic_language() { | |
| assert_eq!( | |
| super::from_lang_id(ARABIC_QATAR).primary_language(), | |
| PrimaryLanguage::Arabic | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_arabic_from_qatar_as_qatar_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(ARABIC_QATAR).sub_language(), | |
| SubLanguage::Qatar | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_armenian_as_armenian_language() { | |
| assert_eq!( | |
| super::from_lang_id(ARMENIAN).primary_language(), | |
| PrimaryLanguage::Armenian | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_assamese_as_assamese_language() { | |
| assert_eq!( | |
| super::from_lang_id(ASSAMESE).primary_language(), | |
| PrimaryLanguage::Assamese | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_azeri_latin_as_azeri_language() { | |
| assert_eq!( | |
| super::from_lang_id(AZERI_LATIN).primary_language(), | |
| PrimaryLanguage::Azeri | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_azeri_latin_as_latin_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(AZERI_LATIN).sub_language(), | |
| SubLanguage::Latin | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_azeri_cyrillic_as_azeri_language() { | |
| assert_eq!( | |
| super::from_lang_id(AZERI_CYRILLIC).primary_language(), | |
| PrimaryLanguage::Azeri | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_azeri_cyrillic_as_cyrillic_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(AZERI_CYRILLIC).sub_language(), | |
| SubLanguage::Cyrillic | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_basque_as_basque_language() { | |
| assert_eq!( | |
| super::from_lang_id(BASQUE).primary_language(), | |
| PrimaryLanguage::Basque | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_belarussian_as_belarussian_language() { | |
| assert_eq!( | |
| super::from_lang_id(BELARUSSIAN).primary_language(), | |
| PrimaryLanguage::Belarussian | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_bengali_as_bengali_language() { | |
| assert_eq!( | |
| super::from_lang_id(BENGALI).primary_language(), | |
| PrimaryLanguage::Bengali | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_bulgarian_as_bulgarian_language() { | |
| assert_eq!( | |
| super::from_lang_id(BULGARIAN).primary_language(), | |
| PrimaryLanguage::Bulgarian | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_burmese_as_burmese_language() { | |
| assert_eq!( | |
| super::from_lang_id(BURMESE).primary_language(), | |
| PrimaryLanguage::Burmese | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_catalan_as_catalan_language() { | |
| assert_eq!( | |
| super::from_lang_id(CATALAN).primary_language(), | |
| PrimaryLanguage::Catalan | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_chinese_from_taiwan_as_chinese_language() { | |
| assert_eq!( | |
| super::from_lang_id(CHINESE_TAIWAN).primary_language(), | |
| PrimaryLanguage::Chinese | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_chinese_from_taiwan_as_taiwan_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(CHINESE_TAIWAN).sub_language(), | |
| SubLanguage::Taiwan | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_chinese_from_china_as_chinese_language() { | |
| assert_eq!( | |
| super::from_lang_id(CHINESE_CHINA).primary_language(), | |
| PrimaryLanguage::Chinese | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_chinese_from_china_as_china_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(CHINESE_CHINA).sub_language(), | |
| SubLanguage::China | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_chinese_from_hong_kong_as_chinese_language() { | |
| assert_eq!( | |
| super::from_lang_id(CHINESE_HONG_KONG).primary_language(), | |
| PrimaryLanguage::Chinese | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_chinese_from_hong_kong_as_hong_kong_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(CHINESE_HONG_KONG).sub_language(), | |
| SubLanguage::HongKong | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_chinese_from_singapore_as_chinese_language() { | |
| assert_eq!( | |
| super::from_lang_id(CHINESE_SINGAPORE).primary_language(), | |
| PrimaryLanguage::Chinese | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_chinese_from_singapore_as_singapore_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(CHINESE_SINGAPORE).sub_language(), | |
| SubLanguage::Singapore | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_chinese_from_macau_as_chinese_language() { | |
| assert_eq!( | |
| super::from_lang_id(CHINESE_MACAU).primary_language(), | |
| PrimaryLanguage::Chinese | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_chinese_from_macau_as_macau_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(CHINESE_MACAU).sub_language(), | |
| SubLanguage::Macau | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_croatian_as_croatian_language() { | |
| assert_eq!( | |
| super::from_lang_id(CROATIAN).primary_language(), | |
| PrimaryLanguage::Croatian | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_czech_as_czech_language() { | |
| assert_eq!( | |
| super::from_lang_id(CZECH).primary_language(), | |
| PrimaryLanguage::Czech | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_danish_as_danish_language() { | |
| assert_eq!( | |
| super::from_lang_id(DANISH).primary_language(), | |
| PrimaryLanguage::Danish | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_dutch_from_netherlands_as_dutch_language() { | |
| assert_eq!( | |
| super::from_lang_id(DUTCH_NETHERLANDS).primary_language(), | |
| PrimaryLanguage::Dutch | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_dutch_from_netherlands_as_netherlands_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(DUTCH_NETHERLANDS).sub_language(), | |
| SubLanguage::Netherlands | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_dutch_from_belgium_as_dutch_language() { | |
| assert_eq!( | |
| super::from_lang_id(DUTCH_BELGIUM).primary_language(), | |
| PrimaryLanguage::Dutch | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_dutch_from_belgium_as_belgium_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(DUTCH_BELGIUM).sub_language(), | |
| SubLanguage::Belgium | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_english_from_united_states_as_english_language() { | |
| assert_eq!( | |
| super::from_lang_id(ENGLISH_UNITED_STATES).primary_language(), | |
| PrimaryLanguage::English | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_english_from_united_states_as_united_states_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(ENGLISH_UNITED_STATES).sub_language(), | |
| SubLanguage::UnitedStates | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_english_from_united_kingdom_as_english_language() { | |
| assert_eq!( | |
| super::from_lang_id(ENGLISH_UNITED_KINGDOM).primary_language(), | |
| PrimaryLanguage::English | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_english_from_united_kingdom_as_united_kingdom_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(ENGLISH_UNITED_KINGDOM).sub_language(), | |
| SubLanguage::UnitedKingdom | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_english_from_australia_as_english_language() { | |
| assert_eq!( | |
| super::from_lang_id(ENGLISH_AUSTRALIAN).primary_language(), | |
| PrimaryLanguage::English | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_english_from_australia_as_australia_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(ENGLISH_AUSTRALIAN).sub_language(), | |
| SubLanguage::Australia | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_english_from_canada_as_english_language() { | |
| assert_eq!( | |
| super::from_lang_id(ENGLISH_CANADIAN).primary_language(), | |
| PrimaryLanguage::English | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_english_from_canada_as_canada_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(ENGLISH_CANADIAN).sub_language(), | |
| SubLanguage::Canada | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_english_from_new_zealand_as_english_language() { | |
| assert_eq!( | |
| super::from_lang_id(ENGLISH_NEW_ZEALAND).primary_language(), | |
| PrimaryLanguage::English | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_english_from_new_zealand_as_new_zealand_language() { | |
| assert_eq!( | |
| super::from_lang_id(ENGLISH_NEW_ZEALAND).sub_language(), | |
| SubLanguage::NewZealand | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_english_from_ireland_as_english_language() { | |
| assert_eq!( | |
| super::from_lang_id(ENGLISH_IRELAND).primary_language(), | |
| PrimaryLanguage::English | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_english_from_ireland_as_ireland_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(ENGLISH_IRELAND).sub_language(), | |
| SubLanguage::Ireland | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_english_from_south_africa_as_english_language() { | |
| assert_eq!( | |
| super::from_lang_id(ENGLISH_SOUTH_AFRICA).primary_language(), | |
| PrimaryLanguage::English | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_english_from_south_africa_as_south_africa_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(ENGLISH_SOUTH_AFRICA).sub_language(), | |
| SubLanguage::SouthAfrica | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_english_from_jamaica_as_english_language() { | |
| assert_eq!( | |
| super::from_lang_id(ENGLISH_JAMAICA).primary_language(), | |
| PrimaryLanguage::English | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_english_from_jamaica_as_jamaica_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(ENGLISH_JAMAICA).sub_language(), | |
| SubLanguage::Jamaica | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_english_from_caribbean_as_english_language() { | |
| assert_eq!( | |
| super::from_lang_id(ENGLISH_CARIBBEAN).primary_language(), | |
| PrimaryLanguage::English | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_english_from_caribbean_as_caribbean_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(ENGLISH_CARIBBEAN).sub_language(), | |
| SubLanguage::Caribbean | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_english_from_belize_as_english_language() { | |
| assert_eq!( | |
| super::from_lang_id(ENGLISH_BELIZE).primary_language(), | |
| PrimaryLanguage::English | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_english_from_belize_as_belize_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(ENGLISH_BELIZE).sub_language(), | |
| SubLanguage::Belize | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_english_from_trinidad_as_english_language() { | |
| assert_eq!( | |
| super::from_lang_id(ENGLISH_TRINIDAD).primary_language(), | |
| PrimaryLanguage::English | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_english_from_trinidad_as_trinidad_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(ENGLISH_TRINIDAD).sub_language(), | |
| SubLanguage::Trinidad | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_english_from_zimbabwe_as_english_language() { | |
| assert_eq!( | |
| super::from_lang_id(ENGLISH_ZIMBABWE).primary_language(), | |
| PrimaryLanguage::English | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_english_from_zimbabwe_as_zimbabwe_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(ENGLISH_ZIMBABWE).sub_language(), | |
| SubLanguage::Zimbabwe | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_english_from_philippines_as_english_language() { | |
| assert_eq!( | |
| super::from_lang_id(ENGLISH_PHILIPPINES).primary_language(), | |
| PrimaryLanguage::English | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_english_from_philippines_as_philippines_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(ENGLISH_PHILIPPINES).sub_language(), | |
| SubLanguage::Philippines | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_estonian_as_estonian_language() { | |
| assert_eq!( | |
| super::from_lang_id(ESTONIAN).primary_language(), | |
| PrimaryLanguage::Estonian | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_faeroese_as_faeroese_language() { | |
| assert_eq!( | |
| super::from_lang_id(FAEROESE).primary_language(), | |
| PrimaryLanguage::Faeroese | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_farsi_as_farsi_language() { | |
| assert_eq!( | |
| super::from_lang_id(FARSI).primary_language(), | |
| PrimaryLanguage::Farsi | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_finnish_as_finnish_language() { | |
| assert_eq!( | |
| super::from_lang_id(FINNISH).primary_language(), | |
| PrimaryLanguage::Finnish | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_french_standard_as_french_language() { | |
| assert_eq!( | |
| super::from_lang_id(FRENCH_STANDARD).primary_language(), | |
| PrimaryLanguage::French | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_french_standard_as_standard_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(FRENCH_STANDARD).sub_language(), | |
| SubLanguage::Standard | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_french_from_belgium_as_french_language() { | |
| assert_eq!( | |
| super::from_lang_id(FRENCH_BELGIAN).primary_language(), | |
| PrimaryLanguage::French | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_french_from_belgium_as_belgium_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(FRENCH_BELGIAN).sub_language(), | |
| SubLanguage::Belgium | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_french_from_canada_as_french_language() { | |
| assert_eq!( | |
| super::from_lang_id(FRENCH_CANADIAN).primary_language(), | |
| PrimaryLanguage::French | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_french_from_canada_as_canada_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(FRENCH_CANADIAN).sub_language(), | |
| SubLanguage::Canada | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_french_from_switzerland_as_french_language() { | |
| assert_eq!( | |
| super::from_lang_id(FRENCH_SWITZERLAND).primary_language(), | |
| PrimaryLanguage::French | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_french_from_switzerland_as_switzerland_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(FRENCH_SWITZERLAND).sub_language(), | |
| SubLanguage::Switzerland | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_french_from_luxembourg_as_french_language() { | |
| assert_eq!( | |
| super::from_lang_id(FRENCH_LUXEMBOURG).primary_language(), | |
| PrimaryLanguage::French | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_french_from_luxembourg_as_luxembourg_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(FRENCH_LUXEMBOURG).sub_language(), | |
| SubLanguage::Luxembourg | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_french_from_monaco_as_french_language() { | |
| assert_eq!( | |
| super::from_lang_id(FRENCH_MONACO).primary_language(), | |
| PrimaryLanguage::French | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_french_from_monaco_as_monaco_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(FRENCH_MONACO).sub_language(), | |
| SubLanguage::Monaco | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_georgian_as_georgian_language() { | |
| assert_eq!( | |
| super::from_lang_id(GEORGIAN).primary_language(), | |
| PrimaryLanguage::Georgian | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_german_standard_as_german_language() { | |
| assert_eq!( | |
| super::from_lang_id(GERMAN_STANDARD).primary_language(), | |
| PrimaryLanguage::German | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_german_standard_as_standard_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(GERMAN_STANDARD).sub_language(), | |
| SubLanguage::Standard | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_german_from_switzerland_as_german_language() { | |
| assert_eq!( | |
| super::from_lang_id(GERMAN_SWITZERLAND).primary_language(), | |
| PrimaryLanguage::German | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_german_from_switzerland_as_switzerland_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(GERMAN_SWITZERLAND).sub_language(), | |
| SubLanguage::Switzerland | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_german_from_austria_as_german_language() { | |
| assert_eq!( | |
| super::from_lang_id(GERMAN_AUSTRIA).primary_language(), | |
| PrimaryLanguage::German | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_german_from_austria_as_austria_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(GERMAN_AUSTRIA).sub_language(), | |
| SubLanguage::Austria | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_german_from_luxembourg_as_german_language() { | |
| assert_eq!( | |
| super::from_lang_id(GERMAN_LUXEMBOURG).primary_language(), | |
| PrimaryLanguage::German | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_german_from_luxembourg_as_luxembourg_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(GERMAN_LUXEMBOURG).sub_language(), | |
| SubLanguage::Luxembourg | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_german_from_liechtenstein_as_german_language() { | |
| assert_eq!( | |
| super::from_lang_id(GERMAN_LIECHTENSTEIN).primary_language(), | |
| PrimaryLanguage::German | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_german_from_liechtenstein_as_liechtenstein_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(GERMAN_LIECHTENSTEIN).sub_language(), | |
| SubLanguage::Liechtenstein | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_greek_as_greek_language() { | |
| assert_eq!( | |
| super::from_lang_id(GREEK).primary_language(), | |
| PrimaryLanguage::Greek | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_gujarati_as_gujarati_language() { | |
| assert_eq!( | |
| super::from_lang_id(GUJARATI).primary_language(), | |
| PrimaryLanguage::Gujarati | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_hebrew_as_hebrew_language() { | |
| assert_eq!( | |
| super::from_lang_id(HEBREW).primary_language(), | |
| PrimaryLanguage::Hebrew | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_hindi_as_hindi_language() { | |
| assert_eq!( | |
| super::from_lang_id(HINDI).primary_language(), | |
| PrimaryLanguage::Hindi | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_hungarian_as_hungarian_language() { | |
| assert_eq!( | |
| super::from_lang_id(HUNGARIAN).primary_language(), | |
| PrimaryLanguage::Hungarian | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_icelandic_as_icelandic_language() { | |
| assert_eq!( | |
| super::from_lang_id(ICELANDIC).primary_language(), | |
| PrimaryLanguage::Icelandic | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_indonesian_as_indonesian_language() { | |
| assert_eq!( | |
| super::from_lang_id(INDONESIAN).primary_language(), | |
| PrimaryLanguage::Indonesian | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_italian_standard_as_italian_language() { | |
| assert_eq!( | |
| super::from_lang_id(ITALIAN_STANDARD).primary_language(), | |
| PrimaryLanguage::Italian | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_italian_standard_as_standard_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(ITALIAN_STANDARD).sub_language(), | |
| SubLanguage::Standard | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_italian_from_switzerland_as_italian_language() { | |
| assert_eq!( | |
| super::from_lang_id(ITALIAN_SWITZERLAND).primary_language(), | |
| PrimaryLanguage::Italian | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_italian_from_switzerland_as_switzerland_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(ITALIAN_SWITZERLAND).sub_language(), | |
| SubLanguage::Switzerland | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_japanese_as_japanese_language() { | |
| assert_eq!( | |
| super::from_lang_id(JAPANESE).primary_language(), | |
| PrimaryLanguage::Japanese | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_kannada_as_kannada_language() { | |
| assert_eq!( | |
| super::from_lang_id(KANNADA).primary_language(), | |
| PrimaryLanguage::Kannada | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_kashmiri_as_kashmiri_language() { | |
| assert_eq!( | |
| super::from_lang_id(KASHMIRI_INDIA).primary_language(), | |
| PrimaryLanguage::Kashmiri | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_kazakh_as_kazakh_language() { | |
| assert_eq!( | |
| super::from_lang_id(KAZAKH).primary_language(), | |
| PrimaryLanguage::Kazakh | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_konkani_as_konkani_language() { | |
| assert_eq!( | |
| super::from_lang_id(KONKANI).primary_language(), | |
| PrimaryLanguage::Konkani | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_korean_as_korean_language() { | |
| assert_eq!( | |
| super::from_lang_id(KOREAN).primary_language(), | |
| PrimaryLanguage::Korean | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_korean_as_standard_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(KOREAN).sub_language(), | |
| SubLanguage::Standard | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_korean_johab_as_korean_language() { | |
| assert_eq!( | |
| super::from_lang_id(KOREAN_JOHAB).primary_language(), | |
| PrimaryLanguage::Korean | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_korean_johab_as_johab_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(KOREAN_JOHAB).sub_language(), | |
| SubLanguage::Johab | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_latvian_as_latvian_language() { | |
| assert_eq!( | |
| super::from_lang_id(LATVIAN).primary_language(), | |
| PrimaryLanguage::Latvian | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_lithuanian_as_lithuanian_language() { | |
| assert_eq!( | |
| super::from_lang_id(LITHUANIAN).primary_language(), | |
| PrimaryLanguage::Lithuanian | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_lithuanian_as_standard_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(LITHUANIAN).sub_language(), | |
| SubLanguage::Standard | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_lithuanian_classic_as_lithuanian_language() { | |
| assert_eq!( | |
| super::from_lang_id(LITHUANIAN_CLASSIC).primary_language(), | |
| PrimaryLanguage::Lithuanian | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_lithuanian_classic_as_classic_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(LITHUANIAN_CLASSIC).sub_language(), | |
| SubLanguage::Classic | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_macedonian_as_macedonian_language() { | |
| assert_eq!( | |
| super::from_lang_id(MACEDONIAN).primary_language(), | |
| PrimaryLanguage::Macedonian | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_malay_from_malaysia_as_malay_language() { | |
| assert_eq!( | |
| super::from_lang_id(MALAY_MALAYSIAN).primary_language(), | |
| PrimaryLanguage::Malay | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_malay_from_malaysia_as_malaysia_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(MALAY_MALAYSIAN).sub_language(), | |
| SubLanguage::Malaysia | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_malay_from_brunei_darussalam_as_malay_language() { | |
| assert_eq!( | |
| super::from_lang_id(MALAY_BRUNEI_DARUSSALAM).primary_language(), | |
| PrimaryLanguage::Malay | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_malay_from_brunei_darussalam_as_brunei_darussalam_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(MALAY_BRUNEI_DARUSSALAM).sub_language(), | |
| SubLanguage::BruneiDarussalam | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_malayalam_as_malayalam_language() { | |
| assert_eq!( | |
| super::from_lang_id(MALAYALAM).primary_language(), | |
| PrimaryLanguage::Malayalam | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_manipuri_as_manipuri_language() { | |
| assert_eq!( | |
| super::from_lang_id(MANIPURI).primary_language(), | |
| PrimaryLanguage::Manipuri | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_marathi_as_marathi_language() { | |
| assert_eq!( | |
| super::from_lang_id(MARATHI).primary_language(), | |
| PrimaryLanguage::Marathi | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_nepali_as_nepali_language() { | |
| assert_eq!( | |
| super::from_lang_id(NEPALI_INDIA).primary_language(), | |
| PrimaryLanguage::Nepali | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_norwegian_bokmal_as_norwegian_language() { | |
| assert_eq!( | |
| super::from_lang_id(NORWEGIAN_BOKMAL).primary_language(), | |
| PrimaryLanguage::Norwegian | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_norwegian_bokmal_as_bokmal_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(NORWEGIAN_BOKMAL).sub_language(), | |
| SubLanguage::Bokmal | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_norwegian_nynorsk_as_norwegian_language() { | |
| assert_eq!( | |
| super::from_lang_id(NORWEGIAN_NYNORSK).primary_language(), | |
| PrimaryLanguage::Norwegian | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_norwegian_nynorsk_as_nynorsk_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(NORWEGIAN_NYNORSK).sub_language(), | |
| SubLanguage::Nynorsk | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_oriya_as_oriya_language() { | |
| assert_eq!( | |
| super::from_lang_id(ORIYA).primary_language(), | |
| PrimaryLanguage::Oriya | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_polish_as_polish_language() { | |
| assert_eq!( | |
| super::from_lang_id(POLISH).primary_language(), | |
| PrimaryLanguage::Polish | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_portuguese_from_brazil_as_portuguese_language() { | |
| assert_eq!( | |
| super::from_lang_id(PORTUGUESE_BRAZIL).primary_language(), | |
| PrimaryLanguage::Portuguese | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_portuguese_from_brazil_as_brazil_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(PORTUGUESE_BRAZIL).sub_language(), | |
| SubLanguage::Brazil | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_portuguese_standard_as_portuguese_language() { | |
| assert_eq!( | |
| super::from_lang_id(PORTUGUESE_STANDARD).primary_language(), | |
| PrimaryLanguage::Portuguese | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_portuguese_standard_as_standard_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(PORTUGUESE_STANDARD).sub_language(), | |
| SubLanguage::Standard | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_punjabi_as_punjabi_language() { | |
| assert_eq!( | |
| super::from_lang_id(PUNJABI).primary_language(), | |
| PrimaryLanguage::Punjabi | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_romanian_as_romanian_language() { | |
| assert_eq!( | |
| super::from_lang_id(ROMANIAN).primary_language(), | |
| PrimaryLanguage::Romanian | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_russian_as_russian_language() { | |
| assert_eq!( | |
| super::from_lang_id(RUSSIAN).primary_language(), | |
| PrimaryLanguage::Russian | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_sanskrit_as_sanskrit_language() { | |
| assert_eq!( | |
| super::from_lang_id(SANSKRIT).primary_language(), | |
| PrimaryLanguage::Sanskrit | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_serbian_cyrillic_as_serbian_language() { | |
| assert_eq!( | |
| super::from_lang_id(SERBIAN_CYRILLIC).primary_language(), | |
| PrimaryLanguage::Serbian | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_serbian_cyrillic_as_cyrillic_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(SERBIAN_CYRILLIC).sub_language(), | |
| SubLanguage::Cyrillic | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_serbian_latin_as_serbian_language() { | |
| assert_eq!( | |
| super::from_lang_id(SERBIAN_LATIN).primary_language(), | |
| PrimaryLanguage::Serbian | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_serbian_latin_as_latin_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(SERBIAN_LATIN).sub_language(), | |
| SubLanguage::Latin | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_sindhi_as_sindhi_language() { | |
| assert_eq!( | |
| super::from_lang_id(SINDHI).primary_language(), | |
| PrimaryLanguage::Sindhi | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_slovak_as_slovak_language() { | |
| assert_eq!( | |
| super::from_lang_id(SLOVAK).primary_language(), | |
| PrimaryLanguage::Slovak | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_slovenian_as_slovenian_language() { | |
| assert_eq!( | |
| super::from_lang_id(SLOVENIAN).primary_language(), | |
| PrimaryLanguage::Slovenian | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_spanish_traditional_sort_as_spanish_language() { | |
| assert_eq!( | |
| super::from_lang_id(SPANISH_TRADITIONAL_SORT).primary_language(), | |
| PrimaryLanguage::Spanish | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_spanish_traditional_sort_as_traditional_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(SPANISH_TRADITIONAL_SORT).sub_language(), | |
| SubLanguage::Traditional | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_spanish_from_mexico_as_spanish_language() { | |
| assert_eq!( | |
| super::from_lang_id(SPANISH_MEXICAN).primary_language(), | |
| PrimaryLanguage::Spanish | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_spanish_from_mexico_as_mexico_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(SPANISH_MEXICAN).sub_language(), | |
| SubLanguage::Mexico | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_spanish_modern_sort_as_spanish_language() { | |
| assert_eq!( | |
| super::from_lang_id(SPANISH_MODERN_SORT).primary_language(), | |
| PrimaryLanguage::Spanish | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_spanish_modern_sort_as_modern_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(SPANISH_MODERN_SORT).sub_language(), | |
| SubLanguage::Modern | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_spanish_from_guatemala_as_spanish_language() { | |
| assert_eq!( | |
| super::from_lang_id(SPANISH_GUATEMALA).primary_language(), | |
| PrimaryLanguage::Spanish | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_spanish_from_guatemala_as_guatemala_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(SPANISH_GUATEMALA).sub_language(), | |
| SubLanguage::Guatemala | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_spanish_from_costa_rica_as_spanish_language() { | |
| assert_eq!( | |
| super::from_lang_id(SPANISH_COSTA_RICA).primary_language(), | |
| PrimaryLanguage::Spanish | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_spanish_from_costa_rica_as_costa_rica_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(SPANISH_COSTA_RICA).sub_language(), | |
| SubLanguage::CostaRica | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_spanish_from_panama_as_spanish_language() { | |
| assert_eq!( | |
| super::from_lang_id(SPANISH_PANAMA).primary_language(), | |
| PrimaryLanguage::Spanish | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_spanish_from_panama_as_panama_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(SPANISH_PANAMA).sub_language(), | |
| SubLanguage::Panama | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_spanish_from_dominican_republic_as_spanish_language() { | |
| assert_eq!( | |
| super::from_lang_id(SPANISH_DOMINICAN_REPUBLIC).primary_language(), | |
| PrimaryLanguage::Spanish | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_spanish_from_dominican_republic_as_dominican_republic_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(SPANISH_DOMINICAN_REPUBLIC).sub_language(), | |
| SubLanguage::DominicanRepublic | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_spanish_from_venezuela_as_spanish_language() { | |
| assert_eq!( | |
| super::from_lang_id(SPANISH_VENEZUELA).primary_language(), | |
| PrimaryLanguage::Spanish | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_spanish_from_venezuela_as_venezuela_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(SPANISH_VENEZUELA).sub_language(), | |
| SubLanguage::Venezuela | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_spanish_from_colombia_as_spanish_language() { | |
| assert_eq!( | |
| super::from_lang_id(SPANISH_COLOMBIA).primary_language(), | |
| PrimaryLanguage::Spanish | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_spanish_from_colombia_as_colombia_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(SPANISH_COLOMBIA).sub_language(), | |
| SubLanguage::Colombia | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_spanish_from_peru_as_spanish_language() { | |
| assert_eq!( | |
| super::from_lang_id(SPANISH_PERU).primary_language(), | |
| PrimaryLanguage::Spanish | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_spanish_from_peru_as_peru_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(SPANISH_PERU).sub_language(), | |
| SubLanguage::Peru | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_spanish_from_argentina_as_spanish_language() { | |
| assert_eq!( | |
| super::from_lang_id(SPANISH_ARGENTINA).primary_language(), | |
| PrimaryLanguage::Spanish | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_spanish_from_argentina_as_argentina_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(SPANISH_ARGENTINA).sub_language(), | |
| SubLanguage::Argentina | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_spanish_from_ecuador_as_spanish_language() { | |
| assert_eq!( | |
| super::from_lang_id(SPANISH_ECUADOR).primary_language(), | |
| PrimaryLanguage::Spanish | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_spanish_from_ecuador_as_ecuador_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(SPANISH_ECUADOR).sub_language(), | |
| SubLanguage::Ecuador | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_spanish_from_chile_as_spanish_language() { | |
| assert_eq!( | |
| super::from_lang_id(SPANISH_CHILE).primary_language(), | |
| PrimaryLanguage::Spanish | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_spanish_from_chile_as_chile_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(SPANISH_CHILE).sub_language(), | |
| SubLanguage::Chile | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_spanish_from_uruguay_as_spanish_language() { | |
| assert_eq!( | |
| super::from_lang_id(SPANISH_URUGUAY).primary_language(), | |
| PrimaryLanguage::Spanish | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_spanish_from_uruguay_as_uruguay_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(SPANISH_URUGUAY).sub_language(), | |
| SubLanguage::Uruguay | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_spanish_from_paraguay_as_spanish_language() { | |
| assert_eq!( | |
| super::from_lang_id(SPANISH_PARAGUAY).primary_language(), | |
| PrimaryLanguage::Spanish | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_spanish_from_paraguay_as_paraguay_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(SPANISH_PARAGUAY).sub_language(), | |
| SubLanguage::Paraguay | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_spanish_from_bolivia_as_spanish_language() { | |
| assert_eq!( | |
| super::from_lang_id(SPANISH_BOLIVIA).primary_language(), | |
| PrimaryLanguage::Spanish | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_spanish_from_bolivia_as_bolivia_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(SPANISH_BOLIVIA).sub_language(), | |
| SubLanguage::Bolivia | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_spanish_from_el_salvador_as_spanish_language() { | |
| assert_eq!( | |
| super::from_lang_id(SPANISH_EL_SALVADOR).primary_language(), | |
| PrimaryLanguage::Spanish | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_spanish_from_el_salvador_as_el_salvador_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(SPANISH_EL_SALVADOR).sub_language(), | |
| SubLanguage::ElSalvador | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_spanish_from_honduras_as_spanish_language() { | |
| assert_eq!( | |
| super::from_lang_id(SPANISH_HONDURAS).primary_language(), | |
| PrimaryLanguage::Spanish | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_spanish_from_honduras_as_honduras_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(SPANISH_HONDURAS).sub_language(), | |
| SubLanguage::Honduras | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_spanish_from_nicaragua_as_spanish_language() { | |
| assert_eq!( | |
| super::from_lang_id(SPANISH_NICARAGUA).primary_language(), | |
| PrimaryLanguage::Spanish | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_spanish_from_nicaragua_as_nicaragua_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(SPANISH_NICARAGUA).sub_language(), | |
| SubLanguage::Nicaragua | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_spanish_from_puerto_rico_as_spanish_language() { | |
| assert_eq!( | |
| super::from_lang_id(SPANISH_PUERTO_RICO).primary_language(), | |
| PrimaryLanguage::Spanish | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_spanish_from_puerto_rico_as_puerto_rico_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(SPANISH_PUERTO_RICO).sub_language(), | |
| SubLanguage::PuertoRico | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_sutu_as_sutu_language() { | |
| assert_eq!( | |
| super::from_lang_id(SUTU).primary_language(), | |
| PrimaryLanguage::Sutu | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_swahili_as_swahili_language() { | |
| assert_eq!( | |
| super::from_lang_id(SWAHILI_KENYA).primary_language(), | |
| PrimaryLanguage::Swahili | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_swedish_as_swedish_language() { | |
| assert_eq!( | |
| super::from_lang_id(SWEDISH).primary_language(), | |
| PrimaryLanguage::Swedish | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_swedish_as_standard_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(SWEDISH).sub_language(), | |
| SubLanguage::Standard | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_swedish_from_finland_as_swedish_language() { | |
| assert_eq!( | |
| super::from_lang_id(SWEDISH_FINLAND).primary_language(), | |
| PrimaryLanguage::Swedish | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_swedish_from_finland_as_finland_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(SWEDISH_FINLAND).sub_language(), | |
| SubLanguage::Finland | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_tamil_as_tamil_language() { | |
| assert_eq!( | |
| super::from_lang_id(TAMIL).primary_language(), | |
| PrimaryLanguage::Tamil | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_tatar_as_tatar_language() { | |
| assert_eq!( | |
| super::from_lang_id(TATAR_TATARSTAN).primary_language(), | |
| PrimaryLanguage::Tatar | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_telugu_as_telugu_language() { | |
| assert_eq!( | |
| super::from_lang_id(TELUGU).primary_language(), | |
| PrimaryLanguage::Telugu | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_thai_as_thai_language() { | |
| assert_eq!( | |
| super::from_lang_id(THAI).primary_language(), | |
| PrimaryLanguage::Thai | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_turkish_as_turkish_language() { | |
| assert_eq!( | |
| super::from_lang_id(TURKISH).primary_language(), | |
| PrimaryLanguage::Turkish | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_ukrainian_as_ukrainian_language() { | |
| assert_eq!( | |
| super::from_lang_id(UKRAINIAN).primary_language(), | |
| PrimaryLanguage::Ukrainian | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_urdu_from_pakistan_as_urdu_language() { | |
| assert_eq!( | |
| super::from_lang_id(URDU_PAKISTAN).primary_language(), | |
| PrimaryLanguage::Urdu | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_urdu_from_pakistan_as_pakistan_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(URDU_PAKISTAN).sub_language(), | |
| SubLanguage::Pakistan | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_urdu_from_india_as_urdu_language() { | |
| assert_eq!( | |
| super::from_lang_id(URDU_INDIA).primary_language(), | |
| PrimaryLanguage::Urdu | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_urdu_from_india_as_india_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(URDU_INDIA).sub_language(), | |
| SubLanguage::India | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_uzbek_latin_as_uzbek_language() { | |
| assert_eq!( | |
| super::from_lang_id(UZBEK_LATIN).primary_language(), | |
| PrimaryLanguage::Uzbek | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_uzbek_latin_as_latin_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(UZBEK_LATIN).sub_language(), | |
| SubLanguage::Latin | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_uzbek_cyrillic_as_uzbek_language() { | |
| assert_eq!( | |
| super::from_lang_id(UZBEK_CYRILLIC).primary_language(), | |
| PrimaryLanguage::Uzbek | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_uzbek_cyrillic_as_cyrillic_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(UZBEK_CYRILLIC).sub_language(), | |
| SubLanguage::Cyrillic | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_vietnamese_as_vietnamese_language() { | |
| assert_eq!( | |
| super::from_lang_id(VIETNAMESE).primary_language(), | |
| PrimaryLanguage::Vietnamese | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_hid_usage_data_descriptor_as_hid_language() { | |
| assert_eq!( | |
| super::from_lang_id(HID_USAGE_DATA_DESCRIPTOR).primary_language(), | |
| PrimaryLanguage::HID | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_hid_usage_data_descriptor_as_usage_data_descriptor_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(HID_USAGE_DATA_DESCRIPTOR).sub_language(), | |
| SubLanguage::UsageDataDescriptor | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_hid_vendor_defined_1_as_hid_language() { | |
| assert_eq!( | |
| super::from_lang_id(HID_VENDOR_DEFINED_1).primary_language(), | |
| PrimaryLanguage::HID | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_hid_vendor_defined_1_as_vendor_defined_1_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(HID_VENDOR_DEFINED_1).sub_language(), | |
| SubLanguage::VendorDefined1 | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_hid_vendor_defined_2_as_hid_language() { | |
| assert_eq!( | |
| super::from_lang_id(HID_VENDOR_DEFINED_2).primary_language(), | |
| PrimaryLanguage::HID | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_hid_vendor_defined_1_as_vendor_defined_2_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(HID_VENDOR_DEFINED_2).sub_language(), | |
| SubLanguage::VendorDefined2 | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_hid_vendor_defined_3_as_hid_language() { | |
| assert_eq!( | |
| super::from_lang_id(HID_VENDOR_DEFINED_3).primary_language(), | |
| PrimaryLanguage::HID | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_hid_vendor_defined_1_as_vendor_defined_3_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(HID_VENDOR_DEFINED_3).sub_language(), | |
| SubLanguage::VendorDefined3 | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_hid_vendor_defined_4_as_hid_language() { | |
| assert_eq!( | |
| super::from_lang_id(HID_VENDOR_DEFINED_4).primary_language(), | |
| PrimaryLanguage::HID | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_hid_vendor_defined_1_as_vendor_defined_4_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(HID_VENDOR_DEFINED_4).sub_language(), | |
| SubLanguage::VendorDefined4 | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_other_as_other_language() { | |
| assert_eq!( | |
| super::from_lang_id(0xFFFF).primary_language(), | |
| PrimaryLanguage::Other(PRIMARY_LANGUAGE_MASK) | |
| ); | |
| } | |
| #[test] | |
| fn it_recognizes_other_as_other_sub_language() { | |
| assert_eq!( | |
| super::from_lang_id(0xFFFF).sub_language(), | |
| SubLanguage::Other(SUB_LANGUAGE_MASK) | |
| ); | |
| } | |
| } |