| 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) |
| ); |
| } |
| } |