From 698f8c2f01ea549d77d7dc3338a12e04c11057b9 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 17 Apr 2024 14:02:58 +0200 Subject: Adding upstream version 1.64.0+dfsg1. Signed-off-by: Daniel Baumann --- vendor/unicode-script/src/tables.rs | 3111 +++++++++++++++++++++++++++++++++++ 1 file changed, 3111 insertions(+) create mode 100644 vendor/unicode-script/src/tables.rs (limited to 'vendor/unicode-script/src/tables.rs') diff --git a/vendor/unicode-script/src/tables.rs b/vendor/unicode-script/src/tables.rs new file mode 100644 index 000000000..e31a7229f --- /dev/null +++ b/vendor/unicode-script/src/tables.rs @@ -0,0 +1,3111 @@ +// Copyright 2012-2018 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +// NOTE: The following code was generated by "scripts/unicode.py", do not edit directly + +#![allow(missing_docs, non_upper_case_globals, non_snake_case)] + +pub use tables_impl::*; + +#[rustfmt::skip] +mod tables_impl { +use crate::ScriptExtension; + +/// The version of [Unicode](http://www.unicode.org/) +/// that this version of unicode-script is based on. +pub const UNICODE_VERSION: (u64, u64, u64) = (13, 0, 0); + +#[derive(Clone, Copy, PartialEq, Eq, Debug, Hash)] +#[non_exhaustive] +#[allow(non_camel_case_types)] +#[repr(u8)] +/// A value of the `Script` property +pub enum Script { + /// Unknown script + Unknown = 0xFF, + /// Zyyy + Common = 0xFE, + /// Zinh, + Inherited = 0xFD, + /// Adlm + Adlam = 0, + /// Aghb + Caucasian_Albanian = 1, + /// Ahom + Ahom = 2, + /// Arab + Arabic = 3, + /// Armi + Imperial_Aramaic = 4, + /// Armn + Armenian = 5, + /// Avst + Avestan = 6, + /// Bali + Balinese = 7, + /// Bamu + Bamum = 8, + /// Bass + Bassa_Vah = 9, + /// Batk + Batak = 10, + /// Beng + Bengali = 11, + /// Bhks + Bhaiksuki = 12, + /// Bopo + Bopomofo = 13, + /// Brah + Brahmi = 14, + /// Brai + Braille = 15, + /// Bugi + Buginese = 16, + /// Buhd + Buhid = 17, + /// Cakm + Chakma = 18, + /// Cans + Canadian_Aboriginal = 19, + /// Cari + Carian = 20, + /// Cham + Cham = 21, + /// Cher + Cherokee = 22, + /// Chrs + Chorasmian = 23, + /// Copt + Coptic = 24, + /// Cprt + Cypriot = 25, + /// Cyrl + Cyrillic = 26, + /// Deva + Devanagari = 27, + /// Diak + Dives_Akuru = 28, + /// Dogr + Dogra = 29, + /// Dsrt + Deseret = 30, + /// Dupl + Duployan = 31, + /// Egyp + Egyptian_Hieroglyphs = 32, + /// Elba + Elbasan = 33, + /// Elym + Elymaic = 34, + /// Ethi + Ethiopic = 35, + /// Geor + Georgian = 36, + /// Glag + Glagolitic = 37, + /// Gong + Gunjala_Gondi = 38, + /// Gonm + Masaram_Gondi = 39, + /// Goth + Gothic = 40, + /// Gran + Grantha = 41, + /// Grek + Greek = 42, + /// Gujr + Gujarati = 43, + /// Guru + Gurmukhi = 44, + /// Hang + Hangul = 45, + /// Hani + Han = 46, + /// Hano + Hanunoo = 47, + /// Hatr + Hatran = 48, + /// Hebr + Hebrew = 49, + /// Hira + Hiragana = 50, + /// Hluw + Anatolian_Hieroglyphs = 51, + /// Hmng + Pahawh_Hmong = 52, + /// Hmnp + Nyiakeng_Puachue_Hmong = 53, + /// Hung + Old_Hungarian = 54, + /// Ital + Old_Italic = 55, + /// Java + Javanese = 56, + /// Kali + Kayah_Li = 57, + /// Kana + Katakana = 58, + /// Khar + Kharoshthi = 59, + /// Khmr + Khmer = 60, + /// Khoj + Khojki = 61, + /// Kits + Khitan_Small_Script = 62, + /// Knda + Kannada = 63, + /// Kthi + Kaithi = 64, + /// Lana + Tai_Tham = 65, + /// Laoo + Lao = 66, + /// Latn + Latin = 67, + /// Lepc + Lepcha = 68, + /// Limb + Limbu = 69, + /// Lina + Linear_A = 70, + /// Linb + Linear_B = 71, + /// Lisu + Lisu = 72, + /// Lyci + Lycian = 73, + /// Lydi + Lydian = 74, + /// Mahj + Mahajani = 75, + /// Maka + Makasar = 76, + /// Mand + Mandaic = 77, + /// Mani + Manichaean = 78, + /// Marc + Marchen = 79, + /// Medf + Medefaidrin = 80, + /// Mend + Mende_Kikakui = 81, + /// Merc + Meroitic_Cursive = 82, + /// Mero + Meroitic_Hieroglyphs = 83, + /// Mlym + Malayalam = 84, + /// Modi + Modi = 85, + /// Mong + Mongolian = 86, + /// Mroo + Mro = 87, + /// Mtei + Meetei_Mayek = 88, + /// Mult + Multani = 89, + /// Mymr + Myanmar = 90, + /// Nand + Nandinagari = 91, + /// Narb + Old_North_Arabian = 92, + /// Nbat + Nabataean = 93, + /// Newa + Newa = 94, + /// Nkoo + Nko = 95, + /// Nshu + Nushu = 96, + /// Ogam + Ogham = 97, + /// Olck + Ol_Chiki = 98, + /// Orkh + Old_Turkic = 99, + /// Orya + Oriya = 100, + /// Osge + Osage = 101, + /// Osma + Osmanya = 102, + /// Palm + Palmyrene = 103, + /// Pauc + Pau_Cin_Hau = 104, + /// Perm + Old_Permic = 105, + /// Phag + Phags_Pa = 106, + /// Phli + Inscriptional_Pahlavi = 107, + /// Phlp + Psalter_Pahlavi = 108, + /// Phnx + Phoenician = 109, + /// Plrd + Miao = 110, + /// Prti + Inscriptional_Parthian = 111, + /// Rjng + Rejang = 112, + /// Rohg + Hanifi_Rohingya = 113, + /// Runr + Runic = 114, + /// Samr + Samaritan = 115, + /// Sarb + Old_South_Arabian = 116, + /// Saur + Saurashtra = 117, + /// Sgnw + SignWriting = 118, + /// Shaw + Shavian = 119, + /// Shrd + Sharada = 120, + /// Sidd + Siddham = 121, + /// Sind + Khudawadi = 122, + /// Sinh + Sinhala = 123, + /// Sogd + Sogdian = 124, + /// Sogo + Old_Sogdian = 125, + /// Sora + Sora_Sompeng = 126, + /// Soyo + Soyombo = 127, + /// Sund + Sundanese = 128, + /// Sylo + Syloti_Nagri = 129, + /// Syrc + Syriac = 130, + /// Tagb + Tagbanwa = 131, + /// Takr + Takri = 132, + /// Tale + Tai_Le = 133, + /// Talu + New_Tai_Lue = 134, + /// Taml + Tamil = 135, + /// Tang + Tangut = 136, + /// Tavt + Tai_Viet = 137, + /// Telu + Telugu = 138, + /// Tfng + Tifinagh = 139, + /// Tglg + Tagalog = 140, + /// Thaa + Thaana = 141, + /// Thai + Thai = 142, + /// Tibt + Tibetan = 143, + /// Tirh + Tirhuta = 144, + /// Ugar + Ugaritic = 145, + /// Vaii + Vai = 146, + /// Wara + Warang_Citi = 147, + /// Wcho + Wancho = 148, + /// Xpeo + Old_Persian = 149, + /// Xsux + Cuneiform = 150, + /// Yezi + Yezidi = 151, + /// Yiii + Yi = 152, + /// Zanb + Zanabazar_Square = 153, +} +pub const NEXT_SCRIPT: u8 = 154; + +pub mod script_extensions { + use crate::ScriptExtension; + pub const COMMON: ScriptExtension = ScriptExtension::new_common(); + pub const INHERITED: ScriptExtension = ScriptExtension::new_inherited(); + pub const UNKNOWN: ScriptExtension = ScriptExtension::new_unknown(); + /// Adlam + pub const ADLAM: ScriptExtension = ScriptExtension::new(0x1, 0, 0); + /// Adlam + pub const ADLM: ScriptExtension = ADLAM; + /// Caucasian_Albanian + pub const CAUCASIAN_ALBANIAN: ScriptExtension = ScriptExtension::new(0x2, 0, 0); + /// Caucasian_Albanian + pub const AGHB: ScriptExtension = CAUCASIAN_ALBANIAN; + /// Ahom + pub const AHOM: ScriptExtension = ScriptExtension::new(0x4, 0, 0); + /// Arabic + pub const ARABIC: ScriptExtension = ScriptExtension::new(0x8, 0, 0); + /// Arabic + pub const ARAB: ScriptExtension = ARABIC; + /// Imperial_Aramaic + pub const IMPERIAL_ARAMAIC: ScriptExtension = ScriptExtension::new(0x10, 0, 0); + /// Imperial_Aramaic + pub const ARMI: ScriptExtension = IMPERIAL_ARAMAIC; + /// Armenian + pub const ARMENIAN: ScriptExtension = ScriptExtension::new(0x20, 0, 0); + /// Armenian + pub const ARMN: ScriptExtension = ARMENIAN; + /// Avestan + pub const AVESTAN: ScriptExtension = ScriptExtension::new(0x40, 0, 0); + /// Avestan + pub const AVST: ScriptExtension = AVESTAN; + /// Balinese + pub const BALINESE: ScriptExtension = ScriptExtension::new(0x80, 0, 0); + /// Balinese + pub const BALI: ScriptExtension = BALINESE; + /// Bamum + pub const BAMUM: ScriptExtension = ScriptExtension::new(0x100, 0, 0); + /// Bamum + pub const BAMU: ScriptExtension = BAMUM; + /// Bassa_Vah + pub const BASSA_VAH: ScriptExtension = ScriptExtension::new(0x200, 0, 0); + /// Bassa_Vah + pub const BASS: ScriptExtension = BASSA_VAH; + /// Batak + pub const BATAK: ScriptExtension = ScriptExtension::new(0x400, 0, 0); + /// Batak + pub const BATK: ScriptExtension = BATAK; + /// Bengali + pub const BENGALI: ScriptExtension = ScriptExtension::new(0x800, 0, 0); + /// Bengali + pub const BENG: ScriptExtension = BENGALI; + /// Bhaiksuki + pub const BHAIKSUKI: ScriptExtension = ScriptExtension::new(0x1000, 0, 0); + /// Bhaiksuki + pub const BHKS: ScriptExtension = BHAIKSUKI; + /// Bopomofo + pub const BOPOMOFO: ScriptExtension = ScriptExtension::new(0x2000, 0, 0); + /// Bopomofo + pub const BOPO: ScriptExtension = BOPOMOFO; + /// Brahmi + pub const BRAHMI: ScriptExtension = ScriptExtension::new(0x4000, 0, 0); + /// Brahmi + pub const BRAH: ScriptExtension = BRAHMI; + /// Braille + pub const BRAILLE: ScriptExtension = ScriptExtension::new(0x8000, 0, 0); + /// Braille + pub const BRAI: ScriptExtension = BRAILLE; + /// Buginese + pub const BUGINESE: ScriptExtension = ScriptExtension::new(0x10000, 0, 0); + /// Buginese + pub const BUGI: ScriptExtension = BUGINESE; + /// Buhid + pub const BUHID: ScriptExtension = ScriptExtension::new(0x20000, 0, 0); + /// Buhid + pub const BUHD: ScriptExtension = BUHID; + /// Chakma + pub const CHAKMA: ScriptExtension = ScriptExtension::new(0x40000, 0, 0); + /// Chakma + pub const CAKM: ScriptExtension = CHAKMA; + /// Canadian_Aboriginal + pub const CANADIAN_ABORIGINAL: ScriptExtension = ScriptExtension::new(0x80000, 0, 0); + /// Canadian_Aboriginal + pub const CANS: ScriptExtension = CANADIAN_ABORIGINAL; + /// Carian + pub const CARIAN: ScriptExtension = ScriptExtension::new(0x100000, 0, 0); + /// Carian + pub const CARI: ScriptExtension = CARIAN; + /// Cham + pub const CHAM: ScriptExtension = ScriptExtension::new(0x200000, 0, 0); + /// Cherokee + pub const CHEROKEE: ScriptExtension = ScriptExtension::new(0x400000, 0, 0); + /// Cherokee + pub const CHER: ScriptExtension = CHEROKEE; + /// Chorasmian + pub const CHORASMIAN: ScriptExtension = ScriptExtension::new(0x800000, 0, 0); + /// Chorasmian + pub const CHRS: ScriptExtension = CHORASMIAN; + /// Coptic + pub const COPTIC: ScriptExtension = ScriptExtension::new(0x1000000, 0, 0); + /// Coptic + pub const COPT: ScriptExtension = COPTIC; + /// Cypriot + pub const CYPRIOT: ScriptExtension = ScriptExtension::new(0x2000000, 0, 0); + /// Cypriot + pub const CPRT: ScriptExtension = CYPRIOT; + /// Cyrillic + pub const CYRILLIC: ScriptExtension = ScriptExtension::new(0x4000000, 0, 0); + /// Cyrillic + pub const CYRL: ScriptExtension = CYRILLIC; + /// Devanagari + pub const DEVANAGARI: ScriptExtension = ScriptExtension::new(0x8000000, 0, 0); + /// Devanagari + pub const DEVA: ScriptExtension = DEVANAGARI; + /// Dives_Akuru + pub const DIVES_AKURU: ScriptExtension = ScriptExtension::new(0x10000000, 0, 0); + /// Dives_Akuru + pub const DIAK: ScriptExtension = DIVES_AKURU; + /// Dogra + pub const DOGRA: ScriptExtension = ScriptExtension::new(0x20000000, 0, 0); + /// Dogra + pub const DOGR: ScriptExtension = DOGRA; + /// Deseret + pub const DESERET: ScriptExtension = ScriptExtension::new(0x40000000, 0, 0); + /// Deseret + pub const DSRT: ScriptExtension = DESERET; + /// Duployan + pub const DUPLOYAN: ScriptExtension = ScriptExtension::new(0x80000000, 0, 0); + /// Duployan + pub const DUPL: ScriptExtension = DUPLOYAN; + /// Egyptian_Hieroglyphs + pub const EGYPTIAN_HIEROGLYPHS: ScriptExtension = ScriptExtension::new(0x100000000, 0, 0); + /// Egyptian_Hieroglyphs + pub const EGYP: ScriptExtension = EGYPTIAN_HIEROGLYPHS; + /// Elbasan + pub const ELBASAN: ScriptExtension = ScriptExtension::new(0x200000000, 0, 0); + /// Elbasan + pub const ELBA: ScriptExtension = ELBASAN; + /// Elymaic + pub const ELYMAIC: ScriptExtension = ScriptExtension::new(0x400000000, 0, 0); + /// Elymaic + pub const ELYM: ScriptExtension = ELYMAIC; + /// Ethiopic + pub const ETHIOPIC: ScriptExtension = ScriptExtension::new(0x800000000, 0, 0); + /// Ethiopic + pub const ETHI: ScriptExtension = ETHIOPIC; + /// Georgian + pub const GEORGIAN: ScriptExtension = ScriptExtension::new(0x1000000000, 0, 0); + /// Georgian + pub const GEOR: ScriptExtension = GEORGIAN; + /// Glagolitic + pub const GLAGOLITIC: ScriptExtension = ScriptExtension::new(0x2000000000, 0, 0); + /// Glagolitic + pub const GLAG: ScriptExtension = GLAGOLITIC; + /// Gunjala_Gondi + pub const GUNJALA_GONDI: ScriptExtension = ScriptExtension::new(0x4000000000, 0, 0); + /// Gunjala_Gondi + pub const GONG: ScriptExtension = GUNJALA_GONDI; + /// Masaram_Gondi + pub const MASARAM_GONDI: ScriptExtension = ScriptExtension::new(0x8000000000, 0, 0); + /// Masaram_Gondi + pub const GONM: ScriptExtension = MASARAM_GONDI; + /// Gothic + pub const GOTHIC: ScriptExtension = ScriptExtension::new(0x10000000000, 0, 0); + /// Gothic + pub const GOTH: ScriptExtension = GOTHIC; + /// Grantha + pub const GRANTHA: ScriptExtension = ScriptExtension::new(0x20000000000, 0, 0); + /// Grantha + pub const GRAN: ScriptExtension = GRANTHA; + /// Greek + pub const GREEK: ScriptExtension = ScriptExtension::new(0x40000000000, 0, 0); + /// Greek + pub const GREK: ScriptExtension = GREEK; + /// Gujarati + pub const GUJARATI: ScriptExtension = ScriptExtension::new(0x80000000000, 0, 0); + /// Gujarati + pub const GUJR: ScriptExtension = GUJARATI; + /// Gurmukhi + pub const GURMUKHI: ScriptExtension = ScriptExtension::new(0x100000000000, 0, 0); + /// Gurmukhi + pub const GURU: ScriptExtension = GURMUKHI; + /// Hangul + pub const HANGUL: ScriptExtension = ScriptExtension::new(0x200000000000, 0, 0); + /// Hangul + pub const HANG: ScriptExtension = HANGUL; + /// Han + pub const HAN: ScriptExtension = ScriptExtension::new(0x400000000000, 0, 0); + /// Han + pub const HANI: ScriptExtension = HAN; + /// Hanunoo + pub const HANUNOO: ScriptExtension = ScriptExtension::new(0x800000000000, 0, 0); + /// Hanunoo + pub const HANO: ScriptExtension = HANUNOO; + /// Hatran + pub const HATRAN: ScriptExtension = ScriptExtension::new(0x1000000000000, 0, 0); + /// Hatran + pub const HATR: ScriptExtension = HATRAN; + /// Hebrew + pub const HEBREW: ScriptExtension = ScriptExtension::new(0x2000000000000, 0, 0); + /// Hebrew + pub const HEBR: ScriptExtension = HEBREW; + /// Hiragana + pub const HIRAGANA: ScriptExtension = ScriptExtension::new(0x4000000000000, 0, 0); + /// Hiragana + pub const HIRA: ScriptExtension = HIRAGANA; + /// Anatolian_Hieroglyphs + pub const ANATOLIAN_HIEROGLYPHS: ScriptExtension = ScriptExtension::new(0x8000000000000, 0, 0); + /// Anatolian_Hieroglyphs + pub const HLUW: ScriptExtension = ANATOLIAN_HIEROGLYPHS; + /// Pahawh_Hmong + pub const PAHAWH_HMONG: ScriptExtension = ScriptExtension::new(0x10000000000000, 0, 0); + /// Pahawh_Hmong + pub const HMNG: ScriptExtension = PAHAWH_HMONG; + /// Nyiakeng_Puachue_Hmong + pub const NYIAKENG_PUACHUE_HMONG: ScriptExtension = ScriptExtension::new(0x20000000000000, 0, 0); + /// Nyiakeng_Puachue_Hmong + pub const HMNP: ScriptExtension = NYIAKENG_PUACHUE_HMONG; + /// Old_Hungarian + pub const OLD_HUNGARIAN: ScriptExtension = ScriptExtension::new(0x40000000000000, 0, 0); + /// Old_Hungarian + pub const HUNG: ScriptExtension = OLD_HUNGARIAN; + /// Old_Italic + pub const OLD_ITALIC: ScriptExtension = ScriptExtension::new(0x80000000000000, 0, 0); + /// Old_Italic + pub const ITAL: ScriptExtension = OLD_ITALIC; + /// Javanese + pub const JAVANESE: ScriptExtension = ScriptExtension::new(0x100000000000000, 0, 0); + /// Javanese + pub const JAVA: ScriptExtension = JAVANESE; + /// Kayah_Li + pub const KAYAH_LI: ScriptExtension = ScriptExtension::new(0x200000000000000, 0, 0); + /// Kayah_Li + pub const KALI: ScriptExtension = KAYAH_LI; + /// Katakana + pub const KATAKANA: ScriptExtension = ScriptExtension::new(0x400000000000000, 0, 0); + /// Katakana + pub const KANA: ScriptExtension = KATAKANA; + /// Kharoshthi + pub const KHAROSHTHI: ScriptExtension = ScriptExtension::new(0x800000000000000, 0, 0); + /// Kharoshthi + pub const KHAR: ScriptExtension = KHAROSHTHI; + /// Khmer + pub const KHMER: ScriptExtension = ScriptExtension::new(0x1000000000000000, 0, 0); + /// Khmer + pub const KHMR: ScriptExtension = KHMER; + /// Khojki + pub const KHOJKI: ScriptExtension = ScriptExtension::new(0x2000000000000000, 0, 0); + /// Khojki + pub const KHOJ: ScriptExtension = KHOJKI; + /// Khitan_Small_Script + pub const KHITAN_SMALL_SCRIPT: ScriptExtension = ScriptExtension::new(0x4000000000000000, 0, 0); + /// Khitan_Small_Script + pub const KITS: ScriptExtension = KHITAN_SMALL_SCRIPT; + /// Kannada + pub const KANNADA: ScriptExtension = ScriptExtension::new(0x8000000000000000, 0, 0); + /// Kannada + pub const KNDA: ScriptExtension = KANNADA; + /// Kaithi + pub const KAITHI: ScriptExtension = ScriptExtension::new(0, 0x1, 0); + /// Kaithi + pub const KTHI: ScriptExtension = KAITHI; + /// Tai_Tham + pub const TAI_THAM: ScriptExtension = ScriptExtension::new(0, 0x2, 0); + /// Tai_Tham + pub const LANA: ScriptExtension = TAI_THAM; + /// Lao + pub const LAO: ScriptExtension = ScriptExtension::new(0, 0x4, 0); + /// Lao + pub const LAOO: ScriptExtension = LAO; + /// Latin + pub const LATIN: ScriptExtension = ScriptExtension::new(0, 0x8, 0); + /// Latin + pub const LATN: ScriptExtension = LATIN; + /// Lepcha + pub const LEPCHA: ScriptExtension = ScriptExtension::new(0, 0x10, 0); + /// Lepcha + pub const LEPC: ScriptExtension = LEPCHA; + /// Limbu + pub const LIMBU: ScriptExtension = ScriptExtension::new(0, 0x20, 0); + /// Limbu + pub const LIMB: ScriptExtension = LIMBU; + /// Linear_A + pub const LINEAR_A: ScriptExtension = ScriptExtension::new(0, 0x40, 0); + /// Linear_A + pub const LINA: ScriptExtension = LINEAR_A; + /// Linear_B + pub const LINEAR_B: ScriptExtension = ScriptExtension::new(0, 0x80, 0); + /// Linear_B + pub const LINB: ScriptExtension = LINEAR_B; + /// Lisu + pub const LISU: ScriptExtension = ScriptExtension::new(0, 0x100, 0); + /// Lycian + pub const LYCIAN: ScriptExtension = ScriptExtension::new(0, 0x200, 0); + /// Lycian + pub const LYCI: ScriptExtension = LYCIAN; + /// Lydian + pub const LYDIAN: ScriptExtension = ScriptExtension::new(0, 0x400, 0); + /// Lydian + pub const LYDI: ScriptExtension = LYDIAN; + /// Mahajani + pub const MAHAJANI: ScriptExtension = ScriptExtension::new(0, 0x800, 0); + /// Mahajani + pub const MAHJ: ScriptExtension = MAHAJANI; + /// Makasar + pub const MAKASAR: ScriptExtension = ScriptExtension::new(0, 0x1000, 0); + /// Makasar + pub const MAKA: ScriptExtension = MAKASAR; + /// Mandaic + pub const MANDAIC: ScriptExtension = ScriptExtension::new(0, 0x2000, 0); + /// Mandaic + pub const MAND: ScriptExtension = MANDAIC; + /// Manichaean + pub const MANICHAEAN: ScriptExtension = ScriptExtension::new(0, 0x4000, 0); + /// Manichaean + pub const MANI: ScriptExtension = MANICHAEAN; + /// Marchen + pub const MARCHEN: ScriptExtension = ScriptExtension::new(0, 0x8000, 0); + /// Marchen + pub const MARC: ScriptExtension = MARCHEN; + /// Medefaidrin + pub const MEDEFAIDRIN: ScriptExtension = ScriptExtension::new(0, 0x10000, 0); + /// Medefaidrin + pub const MEDF: ScriptExtension = MEDEFAIDRIN; + /// Mende_Kikakui + pub const MENDE_KIKAKUI: ScriptExtension = ScriptExtension::new(0, 0x20000, 0); + /// Mende_Kikakui + pub const MEND: ScriptExtension = MENDE_KIKAKUI; + /// Meroitic_Cursive + pub const MEROITIC_CURSIVE: ScriptExtension = ScriptExtension::new(0, 0x40000, 0); + /// Meroitic_Cursive + pub const MERC: ScriptExtension = MEROITIC_CURSIVE; + /// Meroitic_Hieroglyphs + pub const MEROITIC_HIEROGLYPHS: ScriptExtension = ScriptExtension::new(0, 0x80000, 0); + /// Meroitic_Hieroglyphs + pub const MERO: ScriptExtension = MEROITIC_HIEROGLYPHS; + /// Malayalam + pub const MALAYALAM: ScriptExtension = ScriptExtension::new(0, 0x100000, 0); + /// Malayalam + pub const MLYM: ScriptExtension = MALAYALAM; + /// Modi + pub const MODI: ScriptExtension = ScriptExtension::new(0, 0x200000, 0); + /// Mongolian + pub const MONGOLIAN: ScriptExtension = ScriptExtension::new(0, 0x400000, 0); + /// Mongolian + pub const MONG: ScriptExtension = MONGOLIAN; + /// Mro + pub const MRO: ScriptExtension = ScriptExtension::new(0, 0x800000, 0); + /// Mro + pub const MROO: ScriptExtension = MRO; + /// Meetei_Mayek + pub const MEETEI_MAYEK: ScriptExtension = ScriptExtension::new(0, 0x1000000, 0); + /// Meetei_Mayek + pub const MTEI: ScriptExtension = MEETEI_MAYEK; + /// Multani + pub const MULTANI: ScriptExtension = ScriptExtension::new(0, 0x2000000, 0); + /// Multani + pub const MULT: ScriptExtension = MULTANI; + /// Myanmar + pub const MYANMAR: ScriptExtension = ScriptExtension::new(0, 0x4000000, 0); + /// Myanmar + pub const MYMR: ScriptExtension = MYANMAR; + /// Nandinagari + pub const NANDINAGARI: ScriptExtension = ScriptExtension::new(0, 0x8000000, 0); + /// Nandinagari + pub const NAND: ScriptExtension = NANDINAGARI; + /// Old_North_Arabian + pub const OLD_NORTH_ARABIAN: ScriptExtension = ScriptExtension::new(0, 0x10000000, 0); + /// Old_North_Arabian + pub const NARB: ScriptExtension = OLD_NORTH_ARABIAN; + /// Nabataean + pub const NABATAEAN: ScriptExtension = ScriptExtension::new(0, 0x20000000, 0); + /// Nabataean + pub const NBAT: ScriptExtension = NABATAEAN; + /// Newa + pub const NEWA: ScriptExtension = ScriptExtension::new(0, 0x40000000, 0); + /// Nko + pub const NKO: ScriptExtension = ScriptExtension::new(0, 0x80000000, 0); + /// Nko + pub const NKOO: ScriptExtension = NKO; + /// Nushu + pub const NUSHU: ScriptExtension = ScriptExtension::new(0, 0x100000000, 0); + /// Nushu + pub const NSHU: ScriptExtension = NUSHU; + /// Ogham + pub const OGHAM: ScriptExtension = ScriptExtension::new(0, 0x200000000, 0); + /// Ogham + pub const OGAM: ScriptExtension = OGHAM; + /// Ol_Chiki + pub const OL_CHIKI: ScriptExtension = ScriptExtension::new(0, 0x400000000, 0); + /// Ol_Chiki + pub const OLCK: ScriptExtension = OL_CHIKI; + /// Old_Turkic + pub const OLD_TURKIC: ScriptExtension = ScriptExtension::new(0, 0x800000000, 0); + /// Old_Turkic + pub const ORKH: ScriptExtension = OLD_TURKIC; + /// Oriya + pub const ORIYA: ScriptExtension = ScriptExtension::new(0, 0x1000000000, 0); + /// Oriya + pub const ORYA: ScriptExtension = ORIYA; + /// Osage + pub const OSAGE: ScriptExtension = ScriptExtension::new(0, 0x2000000000, 0); + /// Osage + pub const OSGE: ScriptExtension = OSAGE; + /// Osmanya + pub const OSMANYA: ScriptExtension = ScriptExtension::new(0, 0x4000000000, 0); + /// Osmanya + pub const OSMA: ScriptExtension = OSMANYA; + /// Palmyrene + pub const PALMYRENE: ScriptExtension = ScriptExtension::new(0, 0x8000000000, 0); + /// Palmyrene + pub const PALM: ScriptExtension = PALMYRENE; + /// Pau_Cin_Hau + pub const PAU_CIN_HAU: ScriptExtension = ScriptExtension::new(0, 0x10000000000, 0); + /// Pau_Cin_Hau + pub const PAUC: ScriptExtension = PAU_CIN_HAU; + /// Old_Permic + pub const OLD_PERMIC: ScriptExtension = ScriptExtension::new(0, 0x20000000000, 0); + /// Old_Permic + pub const PERM: ScriptExtension = OLD_PERMIC; + /// Phags_Pa + pub const PHAGS_PA: ScriptExtension = ScriptExtension::new(0, 0x40000000000, 0); + /// Phags_Pa + pub const PHAG: ScriptExtension = PHAGS_PA; + /// Inscriptional_Pahlavi + pub const INSCRIPTIONAL_PAHLAVI: ScriptExtension = ScriptExtension::new(0, 0x80000000000, 0); + /// Inscriptional_Pahlavi + pub const PHLI: ScriptExtension = INSCRIPTIONAL_PAHLAVI; + /// Psalter_Pahlavi + pub const PSALTER_PAHLAVI: ScriptExtension = ScriptExtension::new(0, 0x100000000000, 0); + /// Psalter_Pahlavi + pub const PHLP: ScriptExtension = PSALTER_PAHLAVI; + /// Phoenician + pub const PHOENICIAN: ScriptExtension = ScriptExtension::new(0, 0x200000000000, 0); + /// Phoenician + pub const PHNX: ScriptExtension = PHOENICIAN; + /// Miao + pub const MIAO: ScriptExtension = ScriptExtension::new(0, 0x400000000000, 0); + /// Miao + pub const PLRD: ScriptExtension = MIAO; + /// Inscriptional_Parthian + pub const INSCRIPTIONAL_PARTHIAN: ScriptExtension = ScriptExtension::new(0, 0x800000000000, 0); + /// Inscriptional_Parthian + pub const PRTI: ScriptExtension = INSCRIPTIONAL_PARTHIAN; + /// Rejang + pub const REJANG: ScriptExtension = ScriptExtension::new(0, 0x1000000000000, 0); + /// Rejang + pub const RJNG: ScriptExtension = REJANG; + /// Hanifi_Rohingya + pub const HANIFI_ROHINGYA: ScriptExtension = ScriptExtension::new(0, 0x2000000000000, 0); + /// Hanifi_Rohingya + pub const ROHG: ScriptExtension = HANIFI_ROHINGYA; + /// Runic + pub const RUNIC: ScriptExtension = ScriptExtension::new(0, 0x4000000000000, 0); + /// Runic + pub const RUNR: ScriptExtension = RUNIC; + /// Samaritan + pub const SAMARITAN: ScriptExtension = ScriptExtension::new(0, 0x8000000000000, 0); + /// Samaritan + pub const SAMR: ScriptExtension = SAMARITAN; + /// Old_South_Arabian + pub const OLD_SOUTH_ARABIAN: ScriptExtension = ScriptExtension::new(0, 0x10000000000000, 0); + /// Old_South_Arabian + pub const SARB: ScriptExtension = OLD_SOUTH_ARABIAN; + /// Saurashtra + pub const SAURASHTRA: ScriptExtension = ScriptExtension::new(0, 0x20000000000000, 0); + /// Saurashtra + pub const SAUR: ScriptExtension = SAURASHTRA; + /// SignWriting + pub const SIGNWRITING: ScriptExtension = ScriptExtension::new(0, 0x40000000000000, 0); + /// SignWriting + pub const SGNW: ScriptExtension = SIGNWRITING; + /// Shavian + pub const SHAVIAN: ScriptExtension = ScriptExtension::new(0, 0x80000000000000, 0); + /// Shavian + pub const SHAW: ScriptExtension = SHAVIAN; + /// Sharada + pub const SHARADA: ScriptExtension = ScriptExtension::new(0, 0x100000000000000, 0); + /// Sharada + pub const SHRD: ScriptExtension = SHARADA; + /// Siddham + pub const SIDDHAM: ScriptExtension = ScriptExtension::new(0, 0x200000000000000, 0); + /// Siddham + pub const SIDD: ScriptExtension = SIDDHAM; + /// Khudawadi + pub const KHUDAWADI: ScriptExtension = ScriptExtension::new(0, 0x400000000000000, 0); + /// Khudawadi + pub const SIND: ScriptExtension = KHUDAWADI; + /// Sinhala + pub const SINHALA: ScriptExtension = ScriptExtension::new(0, 0x800000000000000, 0); + /// Sinhala + pub const SINH: ScriptExtension = SINHALA; + /// Sogdian + pub const SOGDIAN: ScriptExtension = ScriptExtension::new(0, 0x1000000000000000, 0); + /// Sogdian + pub const SOGD: ScriptExtension = SOGDIAN; + /// Old_Sogdian + pub const OLD_SOGDIAN: ScriptExtension = ScriptExtension::new(0, 0x2000000000000000, 0); + /// Old_Sogdian + pub const SOGO: ScriptExtension = OLD_SOGDIAN; + /// Sora_Sompeng + pub const SORA_SOMPENG: ScriptExtension = ScriptExtension::new(0, 0x4000000000000000, 0); + /// Sora_Sompeng + pub const SORA: ScriptExtension = SORA_SOMPENG; + /// Soyombo + pub const SOYOMBO: ScriptExtension = ScriptExtension::new(0, 0x8000000000000000, 0); + /// Soyombo + pub const SOYO: ScriptExtension = SOYOMBO; + /// Sundanese + pub const SUNDANESE: ScriptExtension = ScriptExtension::new(0, 0, 0x1); + /// Sundanese + pub const SUND: ScriptExtension = SUNDANESE; + /// Syloti_Nagri + pub const SYLOTI_NAGRI: ScriptExtension = ScriptExtension::new(0, 0, 0x2); + /// Syloti_Nagri + pub const SYLO: ScriptExtension = SYLOTI_NAGRI; + /// Syriac + pub const SYRIAC: ScriptExtension = ScriptExtension::new(0, 0, 0x4); + /// Syriac + pub const SYRC: ScriptExtension = SYRIAC; + /// Tagbanwa + pub const TAGBANWA: ScriptExtension = ScriptExtension::new(0, 0, 0x8); + /// Tagbanwa + pub const TAGB: ScriptExtension = TAGBANWA; + /// Takri + pub const TAKRI: ScriptExtension = ScriptExtension::new(0, 0, 0x10); + /// Takri + pub const TAKR: ScriptExtension = TAKRI; + /// Tai_Le + pub const TAI_LE: ScriptExtension = ScriptExtension::new(0, 0, 0x20); + /// Tai_Le + pub const TALE: ScriptExtension = TAI_LE; + /// New_Tai_Lue + pub const NEW_TAI_LUE: ScriptExtension = ScriptExtension::new(0, 0, 0x40); + /// New_Tai_Lue + pub const TALU: ScriptExtension = NEW_TAI_LUE; + /// Tamil + pub const TAMIL: ScriptExtension = ScriptExtension::new(0, 0, 0x80); + /// Tamil + pub const TAML: ScriptExtension = TAMIL; + /// Tangut + pub const TANGUT: ScriptExtension = ScriptExtension::new(0, 0, 0x100); + /// Tangut + pub const TANG: ScriptExtension = TANGUT; + /// Tai_Viet + pub const TAI_VIET: ScriptExtension = ScriptExtension::new(0, 0, 0x200); + /// Tai_Viet + pub const TAVT: ScriptExtension = TAI_VIET; + /// Telugu + pub const TELUGU: ScriptExtension = ScriptExtension::new(0, 0, 0x400); + /// Telugu + pub const TELU: ScriptExtension = TELUGU; + /// Tifinagh + pub const TIFINAGH: ScriptExtension = ScriptExtension::new(0, 0, 0x800); + /// Tifinagh + pub const TFNG: ScriptExtension = TIFINAGH; + /// Tagalog + pub const TAGALOG: ScriptExtension = ScriptExtension::new(0, 0, 0x1000); + /// Tagalog + pub const TGLG: ScriptExtension = TAGALOG; + /// Thaana + pub const THAANA: ScriptExtension = ScriptExtension::new(0, 0, 0x2000); + /// Thaana + pub const THAA: ScriptExtension = THAANA; + /// Thai + pub const THAI: ScriptExtension = ScriptExtension::new(0, 0, 0x4000); + /// Tibetan + pub const TIBETAN: ScriptExtension = ScriptExtension::new(0, 0, 0x8000); + /// Tibetan + pub const TIBT: ScriptExtension = TIBETAN; + /// Tirhuta + pub const TIRHUTA: ScriptExtension = ScriptExtension::new(0, 0, 0x10000); + /// Tirhuta + pub const TIRH: ScriptExtension = TIRHUTA; + /// Ugaritic + pub const UGARITIC: ScriptExtension = ScriptExtension::new(0, 0, 0x20000); + /// Ugaritic + pub const UGAR: ScriptExtension = UGARITIC; + /// Vai + pub const VAI: ScriptExtension = ScriptExtension::new(0, 0, 0x40000); + /// Vai + pub const VAII: ScriptExtension = VAI; + /// Warang_Citi + pub const WARANG_CITI: ScriptExtension = ScriptExtension::new(0, 0, 0x80000); + /// Warang_Citi + pub const WARA: ScriptExtension = WARANG_CITI; + /// Wancho + pub const WANCHO: ScriptExtension = ScriptExtension::new(0, 0, 0x100000); + /// Wancho + pub const WCHO: ScriptExtension = WANCHO; + /// Old_Persian + pub const OLD_PERSIAN: ScriptExtension = ScriptExtension::new(0, 0, 0x200000); + /// Old_Persian + pub const XPEO: ScriptExtension = OLD_PERSIAN; + /// Cuneiform + pub const CUNEIFORM: ScriptExtension = ScriptExtension::new(0, 0, 0x400000); + /// Cuneiform + pub const XSUX: ScriptExtension = CUNEIFORM; + /// Yezidi + pub const YEZIDI: ScriptExtension = ScriptExtension::new(0, 0, 0x800000); + /// Yezidi + pub const YEZI: ScriptExtension = YEZIDI; + /// Yi + pub const YI: ScriptExtension = ScriptExtension::new(0, 0, 0x1000000); + /// Yi + pub const YIII: ScriptExtension = YI; + /// Zanabazar_Square + pub const ZANABAZAR_SQUARE: ScriptExtension = ScriptExtension::new(0, 0, 0x2000000); + /// Zanabazar_Square + pub const ZANB: ScriptExtension = ZANABAZAR_SQUARE; + /// Arabic, Coptic + pub const ARAB_COPT: ScriptExtension = ARAB.union(COPT); + /// Arabic, Hanifi_Rohingya + pub const ARAB_ROHG: ScriptExtension = ARAB.union(ROHG); + /// Arabic, Syriac + pub const ARAB_SYRC: ScriptExtension = ARAB.union(SYRC); + /// Arabic, Thaana + pub const ARAB_THAA: ScriptExtension = ARAB.union(THAA); + /// Bengali, Devanagari + pub const BENG_DEVA: ScriptExtension = BENG.union(DEVA); + /// Bopomofo, Han + pub const BOPO_HANI: ScriptExtension = BOPO.union(HANI); + /// Buginese, Javanese + pub const BUGI_JAVA: ScriptExtension = BUGI.union(JAVA); + /// Cypriot, Linear_B + pub const CPRT_LINB: ScriptExtension = CPRT.union(LINB); + /// Cyrillic, Glagolitic + pub const CYRL_GLAG: ScriptExtension = CYRL.union(GLAG); + /// Cyrillic, Latin + pub const CYRL_LATN: ScriptExtension = CYRL.union(LATN); + /// Cyrillic, Old_Permic + pub const CYRL_PERM: ScriptExtension = CYRL.union(PERM); + /// Cyrillic, Syriac + pub const CYRL_SYRC: ScriptExtension = CYRL.union(SYRC); + /// Devanagari, Grantha + pub const DEVA_GRAN: ScriptExtension = DEVA.union(GRAN); + /// Devanagari, Nandinagari + pub const DEVA_NAND: ScriptExtension = DEVA.union(NAND); + /// Devanagari, Sharada + pub const DEVA_SHRD: ScriptExtension = DEVA.union(SHRD); + /// Devanagari, Tamil + pub const DEVA_TAML: ScriptExtension = DEVA.union(TAML); + /// Georgian, Latin + pub const GEOR_LATN: ScriptExtension = GEOR.union(LATN); + /// Grantha, Tamil + pub const GRAN_TAML: ScriptExtension = GRAN.union(TAML); + /// Gujarati, Khojki + pub const GUJR_KHOJ: ScriptExtension = GUJR.union(KHOJ); + /// Gurmukhi, Multani + pub const GURU_MULT: ScriptExtension = GURU.union(MULT); + /// Han, Latin + pub const HANI_LATN: ScriptExtension = HANI.union(LATN); + /// Hiragana, Katakana + pub const HIRA_KANA: ScriptExtension = HIRA.union(KANA); + /// Kannada, Nandinagari + pub const KNDA_NAND: ScriptExtension = KNDA.union(NAND); + /// Latin, Mongolian + pub const LATN_MONG: ScriptExtension = LATN.union(MONG); + /// Mongolian, Phags_Pa + pub const MONG_PHAG: ScriptExtension = MONG.union(PHAG); + /// Arabic, Syriac, Thaana + pub const ARAB_SYRC_THAA: ScriptExtension = ARAB.union(SYRC).union(THAA); + /// Arabic, Thaana, Yezidi + pub const ARAB_THAA_YEZI: ScriptExtension = ARAB.union(THAA).union(YEZI); + /// Bengali, Chakma, Syloti_Nagri + pub const BENG_CAKM_SYLO: ScriptExtension = BENG.union(CAKM).union(SYLO); + /// Chakma, Myanmar, Tai_Le + pub const CAKM_MYMR_TALE: ScriptExtension = CAKM.union(MYMR).union(TALE); + /// Cypriot, Linear_A, Linear_B + pub const CPRT_LINA_LINB: ScriptExtension = CPRT.union(LINA).union(LINB); + /// Devanagari, Grantha, Kannada + pub const DEVA_GRAN_KNDA: ScriptExtension = DEVA.union(GRAN).union(KNDA); + /// Devanagari, Grantha, Latin + pub const DEVA_GRAN_LATN: ScriptExtension = DEVA.union(GRAN).union(LATN); + /// Han, Hiragana, Katakana + pub const HANI_HIRA_KANA: ScriptExtension = HANI.union(HIRA).union(KANA); + /// Kayah_Li, Latin, Myanmar + pub const KALI_LATN_MYMR: ScriptExtension = KALI.union(LATN).union(MYMR); + /// Bengali, Devanagari, Grantha, Kannada + pub const BENG_DEVA_GRAN_KNDA: ScriptExtension = BENG.union(DEVA).union(GRAN).union(KNDA); + /// Buhid, Hanunoo, Tagbanwa, Tagalog + pub const BUHD_HANO_TAGB_TGLG: ScriptExtension = BUHD.union(HANO).union(TAGB).union(TGLG); + /// Devanagari, Dogra, Kaithi, Mahajani + pub const DEVA_DOGR_KTHI_MAHJ: ScriptExtension = DEVA.union(DOGR).union(KTHI).union(MAHJ); + /// Arabic, Hanifi_Rohingya, Syriac, Thaana, Yezidi + pub const ARAB_ROHG_SYRC_THAA_YEZI: ScriptExtension = ARAB.union(ROHG).union(SYRC).union(THAA).union(YEZI); + /// Bopomofo, Hangul, Han, Hiragana, Katakana + pub const BOPO_HANG_HANI_HIRA_KANA: ScriptExtension = BOPO.union(HANG).union(HANI).union(HIRA).union(KANA); + /// Bopomofo, Hangul, Han, Hiragana, Katakana, Yi + pub const BOPO_HANG_HANI_HIRA_KANA_YIII: ScriptExtension = BOPO.union(HANG).union(HANI).union(HIRA).union(KANA).union(YIII); + /// Devanagari, Kannada, Malayalam, Oriya, Tamil, Telugu + pub const DEVA_KNDA_MLYM_ORYA_TAML_TELU: ScriptExtension = DEVA.union(KNDA).union(MLYM).union(ORYA).union(TAML).union(TELU); + /// Adlam, Arabic, Mandaic, Manichaean, Psalter_Pahlavi, Hanifi_Rohingya, Sogdian, Syriac + pub const ADLM_ARAB_MAND_MANI_PHLP_ROHG_SOGD_SYRC: ScriptExtension = ADLM.union(ARAB).union(MAND).union(MANI).union(PHLP).union(ROHG).union(SOGD).union(SYRC); + /// Bengali, Devanagari, Grantha, Kannada, Nandinagari, Oriya, Telugu, Tirhuta + pub const BENG_DEVA_GRAN_KNDA_NAND_ORYA_TELU_TIRH: ScriptExtension = BENG.union(DEVA).union(GRAN).union(KNDA).union(NAND).union(ORYA).union(TELU).union(TIRH); + /// Devanagari, Dogra, Gujarati, Gurmukhi, Khojki, Kaithi, Mahajani, Modi, Khudawadi, Takri, Tirhuta + pub const DEVA_DOGR_GUJR_GURU_KHOJ_KTHI_MAHJ_MODI_SIND_TAKR_TIRH: ScriptExtension = DEVA.union(DOGR).union(GUJR).union(GURU).union(KHOJ).union(KTHI).union(MAHJ).union(MODI).union(SIND).union(TAKR).union(TIRH); + /// Bengali, Devanagari, Grantha, Gujarati, Gurmukhi, Kannada, Latin, Malayalam, Oriya, Tamil, Telugu, Tirhuta + pub const BENG_DEVA_GRAN_GUJR_GURU_KNDA_LATN_MLYM_ORYA_TAML_TELU_TIRH: ScriptExtension = BENG.union(DEVA).union(GRAN).union(GUJR).union(GURU).union(KNDA).union(LATN).union(MLYM).union(ORYA).union(TAML).union(TELU).union(TIRH); + /// Bengali, Devanagari, Grantha, Gujarati, Gurmukhi, Kannada, Latin, Malayalam, Oriya, Sharada, Tamil, Telugu, Tirhuta + pub const BENG_DEVA_GRAN_GUJR_GURU_KNDA_LATN_MLYM_ORYA_SHRD_TAML_TELU_TIRH: ScriptExtension = BENG.union(DEVA).union(GRAN).union(GUJR).union(GURU).union(KNDA).union(LATN).union(MLYM).union(ORYA).union(SHRD).union(TAML).union(TELU).union(TIRH); + /// Devanagari, Dogra, Gujarati, Gurmukhi, Khojki, Kannada, Kaithi, Mahajani, Modi, Nandinagari, Khudawadi, Takri, Tirhuta + pub const DEVA_DOGR_GUJR_GURU_KHOJ_KNDA_KTHI_MAHJ_MODI_NAND_SIND_TAKR_TIRH: ScriptExtension = DEVA.union(DOGR).union(GUJR).union(GURU).union(KHOJ).union(KNDA).union(KTHI).union(MAHJ).union(MODI).union(NAND).union(SIND).union(TAKR).union(TIRH); + /// Devanagari, Dogra, Gujarati, Gurmukhi, Khojki, Kannada, Kaithi, Mahajani, Malayalam, Modi, Nandinagari, Khudawadi, Takri, Tirhuta + pub const DEVA_DOGR_GUJR_GURU_KHOJ_KNDA_KTHI_MAHJ_MLYM_MODI_NAND_SIND_TAKR_TIRH: ScriptExtension = DEVA.union(DOGR).union(GUJR).union(GURU).union(KHOJ).union(KNDA).union(KTHI).union(MAHJ).union(MLYM).union(MODI).union(NAND).union(SIND).union(TAKR).union(TIRH); + /// Bengali, Devanagari, Dogra, Gunjala_Gondi, Masaram_Gondi, Grantha, Gujarati, Gurmukhi, Kannada, Mahajani, Malayalam, Nandinagari, Oriya, Khudawadi, Sinhala, Syloti_Nagri, Takri, Tamil, Telugu, Tirhuta + pub const BENG_DEVA_DOGR_GONG_GONM_GRAN_GUJR_GURU_KNDA_MAHJ_MLYM_NAND_ORYA_SIND_SINH_SYLO_TAKR_TAML_TELU_TIRH: ScriptExtension = BENG.union(DEVA).union(DOGR).union(GONG).union(GONM).union(GRAN).union(GUJR).union(GURU).union(KNDA).union(MAHJ).union(MLYM).union(NAND).union(ORYA).union(SIND).union(SINH).union(SYLO).union(TAKR).union(TAML).union(TELU).union(TIRH); + /// Bengali, Devanagari, Dogra, Gunjala_Gondi, Masaram_Gondi, Grantha, Gujarati, Gurmukhi, Kannada, Limbu, Mahajani, Malayalam, Nandinagari, Oriya, Khudawadi, Sinhala, Syloti_Nagri, Takri, Tamil, Telugu, Tirhuta + pub const BENG_DEVA_DOGR_GONG_GONM_GRAN_GUJR_GURU_KNDA_LIMB_MAHJ_MLYM_NAND_ORYA_SIND_SINH_SYLO_TAKR_TAML_TELU_TIRH: ScriptExtension = BENG.union(DEVA).union(DOGR).union(GONG).union(GONM).union(GRAN).union(GUJR).union(GURU).union(KNDA).union(LIMB).union(MAHJ).union(MLYM).union(NAND).union(ORYA).union(SIND).union(SINH).union(SYLO).union(TAKR).union(TAML).union(TELU).union(TIRH); +} + +impl Script { + + #[inline] + pub(crate) fn inner_full_name(self) -> &'static str { + match self { + Script::Unknown => "Unknown", + Script::Common => "Common", + Script::Inherited => "Inherited", + Script::Adlam => "Adlam", + Script::Caucasian_Albanian => "Caucasian_Albanian", + Script::Ahom => "Ahom", + Script::Arabic => "Arabic", + Script::Imperial_Aramaic => "Imperial_Aramaic", + Script::Armenian => "Armenian", + Script::Avestan => "Avestan", + Script::Balinese => "Balinese", + Script::Bamum => "Bamum", + Script::Bassa_Vah => "Bassa_Vah", + Script::Batak => "Batak", + Script::Bengali => "Bengali", + Script::Bhaiksuki => "Bhaiksuki", + Script::Bopomofo => "Bopomofo", + Script::Brahmi => "Brahmi", + Script::Braille => "Braille", + Script::Buginese => "Buginese", + Script::Buhid => "Buhid", + Script::Chakma => "Chakma", + Script::Canadian_Aboriginal => "Canadian_Aboriginal", + Script::Carian => "Carian", + Script::Cham => "Cham", + Script::Cherokee => "Cherokee", + Script::Chorasmian => "Chorasmian", + Script::Coptic => "Coptic", + Script::Cypriot => "Cypriot", + Script::Cyrillic => "Cyrillic", + Script::Devanagari => "Devanagari", + Script::Dives_Akuru => "Dives_Akuru", + Script::Dogra => "Dogra", + Script::Deseret => "Deseret", + Script::Duployan => "Duployan", + Script::Egyptian_Hieroglyphs => "Egyptian_Hieroglyphs", + Script::Elbasan => "Elbasan", + Script::Elymaic => "Elymaic", + Script::Ethiopic => "Ethiopic", + Script::Georgian => "Georgian", + Script::Glagolitic => "Glagolitic", + Script::Gunjala_Gondi => "Gunjala_Gondi", + Script::Masaram_Gondi => "Masaram_Gondi", + Script::Gothic => "Gothic", + Script::Grantha => "Grantha", + Script::Greek => "Greek", + Script::Gujarati => "Gujarati", + Script::Gurmukhi => "Gurmukhi", + Script::Hangul => "Hangul", + Script::Han => "Han", + Script::Hanunoo => "Hanunoo", + Script::Hatran => "Hatran", + Script::Hebrew => "Hebrew", + Script::Hiragana => "Hiragana", + Script::Anatolian_Hieroglyphs => "Anatolian_Hieroglyphs", + Script::Pahawh_Hmong => "Pahawh_Hmong", + Script::Nyiakeng_Puachue_Hmong => "Nyiakeng_Puachue_Hmong", + Script::Old_Hungarian => "Old_Hungarian", + Script::Old_Italic => "Old_Italic", + Script::Javanese => "Javanese", + Script::Kayah_Li => "Kayah_Li", + Script::Katakana => "Katakana", + Script::Kharoshthi => "Kharoshthi", + Script::Khmer => "Khmer", + Script::Khojki => "Khojki", + Script::Khitan_Small_Script => "Khitan_Small_Script", + Script::Kannada => "Kannada", + Script::Kaithi => "Kaithi", + Script::Tai_Tham => "Tai_Tham", + Script::Lao => "Lao", + Script::Latin => "Latin", + Script::Lepcha => "Lepcha", + Script::Limbu => "Limbu", + Script::Linear_A => "Linear_A", + Script::Linear_B => "Linear_B", + Script::Lisu => "Lisu", + Script::Lycian => "Lycian", + Script::Lydian => "Lydian", + Script::Mahajani => "Mahajani", + Script::Makasar => "Makasar", + Script::Mandaic => "Mandaic", + Script::Manichaean => "Manichaean", + Script::Marchen => "Marchen", + Script::Medefaidrin => "Medefaidrin", + Script::Mende_Kikakui => "Mende_Kikakui", + Script::Meroitic_Cursive => "Meroitic_Cursive", + Script::Meroitic_Hieroglyphs => "Meroitic_Hieroglyphs", + Script::Malayalam => "Malayalam", + Script::Modi => "Modi", + Script::Mongolian => "Mongolian", + Script::Mro => "Mro", + Script::Meetei_Mayek => "Meetei_Mayek", + Script::Multani => "Multani", + Script::Myanmar => "Myanmar", + Script::Nandinagari => "Nandinagari", + Script::Old_North_Arabian => "Old_North_Arabian", + Script::Nabataean => "Nabataean", + Script::Newa => "Newa", + Script::Nko => "Nko", + Script::Nushu => "Nushu", + Script::Ogham => "Ogham", + Script::Ol_Chiki => "Ol_Chiki", + Script::Old_Turkic => "Old_Turkic", + Script::Oriya => "Oriya", + Script::Osage => "Osage", + Script::Osmanya => "Osmanya", + Script::Palmyrene => "Palmyrene", + Script::Pau_Cin_Hau => "Pau_Cin_Hau", + Script::Old_Permic => "Old_Permic", + Script::Phags_Pa => "Phags_Pa", + Script::Inscriptional_Pahlavi => "Inscriptional_Pahlavi", + Script::Psalter_Pahlavi => "Psalter_Pahlavi", + Script::Phoenician => "Phoenician", + Script::Miao => "Miao", + Script::Inscriptional_Parthian => "Inscriptional_Parthian", + Script::Rejang => "Rejang", + Script::Hanifi_Rohingya => "Hanifi_Rohingya", + Script::Runic => "Runic", + Script::Samaritan => "Samaritan", + Script::Old_South_Arabian => "Old_South_Arabian", + Script::Saurashtra => "Saurashtra", + Script::SignWriting => "SignWriting", + Script::Shavian => "Shavian", + Script::Sharada => "Sharada", + Script::Siddham => "Siddham", + Script::Khudawadi => "Khudawadi", + Script::Sinhala => "Sinhala", + Script::Sogdian => "Sogdian", + Script::Old_Sogdian => "Old_Sogdian", + Script::Sora_Sompeng => "Sora_Sompeng", + Script::Soyombo => "Soyombo", + Script::Sundanese => "Sundanese", + Script::Syloti_Nagri => "Syloti_Nagri", + Script::Syriac => "Syriac", + Script::Tagbanwa => "Tagbanwa", + Script::Takri => "Takri", + Script::Tai_Le => "Tai_Le", + Script::New_Tai_Lue => "New_Tai_Lue", + Script::Tamil => "Tamil", + Script::Tangut => "Tangut", + Script::Tai_Viet => "Tai_Viet", + Script::Telugu => "Telugu", + Script::Tifinagh => "Tifinagh", + Script::Tagalog => "Tagalog", + Script::Thaana => "Thaana", + Script::Thai => "Thai", + Script::Tibetan => "Tibetan", + Script::Tirhuta => "Tirhuta", + Script::Ugaritic => "Ugaritic", + Script::Vai => "Vai", + Script::Warang_Citi => "Warang_Citi", + Script::Wancho => "Wancho", + Script::Old_Persian => "Old_Persian", + Script::Cuneiform => "Cuneiform", + Script::Yezidi => "Yezidi", + Script::Yi => "Yi", + Script::Zanabazar_Square => "Zanabazar_Square", + } + } + + #[inline] + pub(crate) fn inner_from_full_name(input: &str) -> Option { + match input { + "Unknown" => Some(Script::Unknown), + "Common" => Some(Script::Common), + "Inherited" => Some(Script::Inherited), + "Adlam" => Some(Script::Adlam), + "Caucasian_Albanian" => Some(Script::Caucasian_Albanian), + "Ahom" => Some(Script::Ahom), + "Arabic" => Some(Script::Arabic), + "Imperial_Aramaic" => Some(Script::Imperial_Aramaic), + "Armenian" => Some(Script::Armenian), + "Avestan" => Some(Script::Avestan), + "Balinese" => Some(Script::Balinese), + "Bamum" => Some(Script::Bamum), + "Bassa_Vah" => Some(Script::Bassa_Vah), + "Batak" => Some(Script::Batak), + "Bengali" => Some(Script::Bengali), + "Bhaiksuki" => Some(Script::Bhaiksuki), + "Bopomofo" => Some(Script::Bopomofo), + "Brahmi" => Some(Script::Brahmi), + "Braille" => Some(Script::Braille), + "Buginese" => Some(Script::Buginese), + "Buhid" => Some(Script::Buhid), + "Chakma" => Some(Script::Chakma), + "Canadian_Aboriginal" => Some(Script::Canadian_Aboriginal), + "Carian" => Some(Script::Carian), + "Cham" => Some(Script::Cham), + "Cherokee" => Some(Script::Cherokee), + "Chorasmian" => Some(Script::Chorasmian), + "Coptic" => Some(Script::Coptic), + "Cypriot" => Some(Script::Cypriot), + "Cyrillic" => Some(Script::Cyrillic), + "Devanagari" => Some(Script::Devanagari), + "Dives_Akuru" => Some(Script::Dives_Akuru), + "Dogra" => Some(Script::Dogra), + "Deseret" => Some(Script::Deseret), + "Duployan" => Some(Script::Duployan), + "Egyptian_Hieroglyphs" => Some(Script::Egyptian_Hieroglyphs), + "Elbasan" => Some(Script::Elbasan), + "Elymaic" => Some(Script::Elymaic), + "Ethiopic" => Some(Script::Ethiopic), + "Georgian" => Some(Script::Georgian), + "Glagolitic" => Some(Script::Glagolitic), + "Gunjala_Gondi" => Some(Script::Gunjala_Gondi), + "Masaram_Gondi" => Some(Script::Masaram_Gondi), + "Gothic" => Some(Script::Gothic), + "Grantha" => Some(Script::Grantha), + "Greek" => Some(Script::Greek), + "Gujarati" => Some(Script::Gujarati), + "Gurmukhi" => Some(Script::Gurmukhi), + "Hangul" => Some(Script::Hangul), + "Han" => Some(Script::Han), + "Hanunoo" => Some(Script::Hanunoo), + "Hatran" => Some(Script::Hatran), + "Hebrew" => Some(Script::Hebrew), + "Hiragana" => Some(Script::Hiragana), + "Anatolian_Hieroglyphs" => Some(Script::Anatolian_Hieroglyphs), + "Pahawh_Hmong" => Some(Script::Pahawh_Hmong), + "Nyiakeng_Puachue_Hmong" => Some(Script::Nyiakeng_Puachue_Hmong), + "Old_Hungarian" => Some(Script::Old_Hungarian), + "Old_Italic" => Some(Script::Old_Italic), + "Javanese" => Some(Script::Javanese), + "Kayah_Li" => Some(Script::Kayah_Li), + "Katakana" => Some(Script::Katakana), + "Kharoshthi" => Some(Script::Kharoshthi), + "Khmer" => Some(Script::Khmer), + "Khojki" => Some(Script::Khojki), + "Khitan_Small_Script" => Some(Script::Khitan_Small_Script), + "Kannada" => Some(Script::Kannada), + "Kaithi" => Some(Script::Kaithi), + "Tai_Tham" => Some(Script::Tai_Tham), + "Lao" => Some(Script::Lao), + "Latin" => Some(Script::Latin), + "Lepcha" => Some(Script::Lepcha), + "Limbu" => Some(Script::Limbu), + "Linear_A" => Some(Script::Linear_A), + "Linear_B" => Some(Script::Linear_B), + "Lisu" => Some(Script::Lisu), + "Lycian" => Some(Script::Lycian), + "Lydian" => Some(Script::Lydian), + "Mahajani" => Some(Script::Mahajani), + "Makasar" => Some(Script::Makasar), + "Mandaic" => Some(Script::Mandaic), + "Manichaean" => Some(Script::Manichaean), + "Marchen" => Some(Script::Marchen), + "Medefaidrin" => Some(Script::Medefaidrin), + "Mende_Kikakui" => Some(Script::Mende_Kikakui), + "Meroitic_Cursive" => Some(Script::Meroitic_Cursive), + "Meroitic_Hieroglyphs" => Some(Script::Meroitic_Hieroglyphs), + "Malayalam" => Some(Script::Malayalam), + "Modi" => Some(Script::Modi), + "Mongolian" => Some(Script::Mongolian), + "Mro" => Some(Script::Mro), + "Meetei_Mayek" => Some(Script::Meetei_Mayek), + "Multani" => Some(Script::Multani), + "Myanmar" => Some(Script::Myanmar), + "Nandinagari" => Some(Script::Nandinagari), + "Old_North_Arabian" => Some(Script::Old_North_Arabian), + "Nabataean" => Some(Script::Nabataean), + "Newa" => Some(Script::Newa), + "Nko" => Some(Script::Nko), + "Nushu" => Some(Script::Nushu), + "Ogham" => Some(Script::Ogham), + "Ol_Chiki" => Some(Script::Ol_Chiki), + "Old_Turkic" => Some(Script::Old_Turkic), + "Oriya" => Some(Script::Oriya), + "Osage" => Some(Script::Osage), + "Osmanya" => Some(Script::Osmanya), + "Palmyrene" => Some(Script::Palmyrene), + "Pau_Cin_Hau" => Some(Script::Pau_Cin_Hau), + "Old_Permic" => Some(Script::Old_Permic), + "Phags_Pa" => Some(Script::Phags_Pa), + "Inscriptional_Pahlavi" => Some(Script::Inscriptional_Pahlavi), + "Psalter_Pahlavi" => Some(Script::Psalter_Pahlavi), + "Phoenician" => Some(Script::Phoenician), + "Miao" => Some(Script::Miao), + "Inscriptional_Parthian" => Some(Script::Inscriptional_Parthian), + "Rejang" => Some(Script::Rejang), + "Hanifi_Rohingya" => Some(Script::Hanifi_Rohingya), + "Runic" => Some(Script::Runic), + "Samaritan" => Some(Script::Samaritan), + "Old_South_Arabian" => Some(Script::Old_South_Arabian), + "Saurashtra" => Some(Script::Saurashtra), + "SignWriting" => Some(Script::SignWriting), + "Shavian" => Some(Script::Shavian), + "Sharada" => Some(Script::Sharada), + "Siddham" => Some(Script::Siddham), + "Khudawadi" => Some(Script::Khudawadi), + "Sinhala" => Some(Script::Sinhala), + "Sogdian" => Some(Script::Sogdian), + "Old_Sogdian" => Some(Script::Old_Sogdian), + "Sora_Sompeng" => Some(Script::Sora_Sompeng), + "Soyombo" => Some(Script::Soyombo), + "Sundanese" => Some(Script::Sundanese), + "Syloti_Nagri" => Some(Script::Syloti_Nagri), + "Syriac" => Some(Script::Syriac), + "Tagbanwa" => Some(Script::Tagbanwa), + "Takri" => Some(Script::Takri), + "Tai_Le" => Some(Script::Tai_Le), + "New_Tai_Lue" => Some(Script::New_Tai_Lue), + "Tamil" => Some(Script::Tamil), + "Tangut" => Some(Script::Tangut), + "Tai_Viet" => Some(Script::Tai_Viet), + "Telugu" => Some(Script::Telugu), + "Tifinagh" => Some(Script::Tifinagh), + "Tagalog" => Some(Script::Tagalog), + "Thaana" => Some(Script::Thaana), + "Thai" => Some(Script::Thai), + "Tibetan" => Some(Script::Tibetan), + "Tirhuta" => Some(Script::Tirhuta), + "Ugaritic" => Some(Script::Ugaritic), + "Vai" => Some(Script::Vai), + "Warang_Citi" => Some(Script::Warang_Citi), + "Wancho" => Some(Script::Wancho), + "Old_Persian" => Some(Script::Old_Persian), + "Cuneiform" => Some(Script::Cuneiform), + "Yezidi" => Some(Script::Yezidi), + "Yi" => Some(Script::Yi), + "Zanabazar_Square" => Some(Script::Zanabazar_Square), + _ => None, + } + } + + #[inline] + pub(crate) fn inner_short_name(self) -> &'static str { + match self { + Script::Unknown => "", + Script::Common => "Zyyy", + Script::Inherited => "Zinh", + Script::Adlam => "Adlm", + Script::Caucasian_Albanian => "Aghb", + Script::Ahom => "Ahom", + Script::Arabic => "Arab", + Script::Imperial_Aramaic => "Armi", + Script::Armenian => "Armn", + Script::Avestan => "Avst", + Script::Balinese => "Bali", + Script::Bamum => "Bamu", + Script::Bassa_Vah => "Bass", + Script::Batak => "Batk", + Script::Bengali => "Beng", + Script::Bhaiksuki => "Bhks", + Script::Bopomofo => "Bopo", + Script::Brahmi => "Brah", + Script::Braille => "Brai", + Script::Buginese => "Bugi", + Script::Buhid => "Buhd", + Script::Chakma => "Cakm", + Script::Canadian_Aboriginal => "Cans", + Script::Carian => "Cari", + Script::Cham => "Cham", + Script::Cherokee => "Cher", + Script::Chorasmian => "Chrs", + Script::Coptic => "Copt", + Script::Cypriot => "Cprt", + Script::Cyrillic => "Cyrl", + Script::Devanagari => "Deva", + Script::Dives_Akuru => "Diak", + Script::Dogra => "Dogr", + Script::Deseret => "Dsrt", + Script::Duployan => "Dupl", + Script::Egyptian_Hieroglyphs => "Egyp", + Script::Elbasan => "Elba", + Script::Elymaic => "Elym", + Script::Ethiopic => "Ethi", + Script::Georgian => "Geor", + Script::Glagolitic => "Glag", + Script::Gunjala_Gondi => "Gong", + Script::Masaram_Gondi => "Gonm", + Script::Gothic => "Goth", + Script::Grantha => "Gran", + Script::Greek => "Grek", + Script::Gujarati => "Gujr", + Script::Gurmukhi => "Guru", + Script::Hangul => "Hang", + Script::Han => "Hani", + Script::Hanunoo => "Hano", + Script::Hatran => "Hatr", + Script::Hebrew => "Hebr", + Script::Hiragana => "Hira", + Script::Anatolian_Hieroglyphs => "Hluw", + Script::Pahawh_Hmong => "Hmng", + Script::Nyiakeng_Puachue_Hmong => "Hmnp", + Script::Old_Hungarian => "Hung", + Script::Old_Italic => "Ital", + Script::Javanese => "Java", + Script::Kayah_Li => "Kali", + Script::Katakana => "Kana", + Script::Kharoshthi => "Khar", + Script::Khmer => "Khmr", + Script::Khojki => "Khoj", + Script::Khitan_Small_Script => "Kits", + Script::Kannada => "Knda", + Script::Kaithi => "Kthi", + Script::Tai_Tham => "Lana", + Script::Lao => "Laoo", + Script::Latin => "Latn", + Script::Lepcha => "Lepc", + Script::Limbu => "Limb", + Script::Linear_A => "Lina", + Script::Linear_B => "Linb", + Script::Lisu => "Lisu", + Script::Lycian => "Lyci", + Script::Lydian => "Lydi", + Script::Mahajani => "Mahj", + Script::Makasar => "Maka", + Script::Mandaic => "Mand", + Script::Manichaean => "Mani", + Script::Marchen => "Marc", + Script::Medefaidrin => "Medf", + Script::Mende_Kikakui => "Mend", + Script::Meroitic_Cursive => "Merc", + Script::Meroitic_Hieroglyphs => "Mero", + Script::Malayalam => "Mlym", + Script::Modi => "Modi", + Script::Mongolian => "Mong", + Script::Mro => "Mroo", + Script::Meetei_Mayek => "Mtei", + Script::Multani => "Mult", + Script::Myanmar => "Mymr", + Script::Nandinagari => "Nand", + Script::Old_North_Arabian => "Narb", + Script::Nabataean => "Nbat", + Script::Newa => "Newa", + Script::Nko => "Nkoo", + Script::Nushu => "Nshu", + Script::Ogham => "Ogam", + Script::Ol_Chiki => "Olck", + Script::Old_Turkic => "Orkh", + Script::Oriya => "Orya", + Script::Osage => "Osge", + Script::Osmanya => "Osma", + Script::Palmyrene => "Palm", + Script::Pau_Cin_Hau => "Pauc", + Script::Old_Permic => "Perm", + Script::Phags_Pa => "Phag", + Script::Inscriptional_Pahlavi => "Phli", + Script::Psalter_Pahlavi => "Phlp", + Script::Phoenician => "Phnx", + Script::Miao => "Plrd", + Script::Inscriptional_Parthian => "Prti", + Script::Rejang => "Rjng", + Script::Hanifi_Rohingya => "Rohg", + Script::Runic => "Runr", + Script::Samaritan => "Samr", + Script::Old_South_Arabian => "Sarb", + Script::Saurashtra => "Saur", + Script::SignWriting => "Sgnw", + Script::Shavian => "Shaw", + Script::Sharada => "Shrd", + Script::Siddham => "Sidd", + Script::Khudawadi => "Sind", + Script::Sinhala => "Sinh", + Script::Sogdian => "Sogd", + Script::Old_Sogdian => "Sogo", + Script::Sora_Sompeng => "Sora", + Script::Soyombo => "Soyo", + Script::Sundanese => "Sund", + Script::Syloti_Nagri => "Sylo", + Script::Syriac => "Syrc", + Script::Tagbanwa => "Tagb", + Script::Takri => "Takr", + Script::Tai_Le => "Tale", + Script::New_Tai_Lue => "Talu", + Script::Tamil => "Taml", + Script::Tangut => "Tang", + Script::Tai_Viet => "Tavt", + Script::Telugu => "Telu", + Script::Tifinagh => "Tfng", + Script::Tagalog => "Tglg", + Script::Thaana => "Thaa", + Script::Thai => "Thai", + Script::Tibetan => "Tibt", + Script::Tirhuta => "Tirh", + Script::Ugaritic => "Ugar", + Script::Vai => "Vaii", + Script::Warang_Citi => "Wara", + Script::Wancho => "Wcho", + Script::Old_Persian => "Xpeo", + Script::Cuneiform => "Xsux", + Script::Yezidi => "Yezi", + Script::Yi => "Yiii", + Script::Zanabazar_Square => "Zanb", + } + } + + #[inline] + pub(crate) fn inner_from_short_name(input: &str) -> Option { + match input { + "Zyyy" => Some(Script::Common), + "Zinh" => Some(Script::Inherited), + "Adlm" => Some(Script::Adlam), + "Aghb" => Some(Script::Caucasian_Albanian), + "Ahom" => Some(Script::Ahom), + "Arab" => Some(Script::Arabic), + "Armi" => Some(Script::Imperial_Aramaic), + "Armn" => Some(Script::Armenian), + "Avst" => Some(Script::Avestan), + "Bali" => Some(Script::Balinese), + "Bamu" => Some(Script::Bamum), + "Bass" => Some(Script::Bassa_Vah), + "Batk" => Some(Script::Batak), + "Beng" => Some(Script::Bengali), + "Bhks" => Some(Script::Bhaiksuki), + "Bopo" => Some(Script::Bopomofo), + "Brah" => Some(Script::Brahmi), + "Brai" => Some(Script::Braille), + "Bugi" => Some(Script::Buginese), + "Buhd" => Some(Script::Buhid), + "Cakm" => Some(Script::Chakma), + "Cans" => Some(Script::Canadian_Aboriginal), + "Cari" => Some(Script::Carian), + "Cham" => Some(Script::Cham), + "Cher" => Some(Script::Cherokee), + "Chrs" => Some(Script::Chorasmian), + "Copt" => Some(Script::Coptic), + "Cprt" => Some(Script::Cypriot), + "Cyrl" => Some(Script::Cyrillic), + "Deva" => Some(Script::Devanagari), + "Diak" => Some(Script::Dives_Akuru), + "Dogr" => Some(Script::Dogra), + "Dsrt" => Some(Script::Deseret), + "Dupl" => Some(Script::Duployan), + "Egyp" => Some(Script::Egyptian_Hieroglyphs), + "Elba" => Some(Script::Elbasan), + "Elym" => Some(Script::Elymaic), + "Ethi" => Some(Script::Ethiopic), + "Geor" => Some(Script::Georgian), + "Glag" => Some(Script::Glagolitic), + "Gong" => Some(Script::Gunjala_Gondi), + "Gonm" => Some(Script::Masaram_Gondi), + "Goth" => Some(Script::Gothic), + "Gran" => Some(Script::Grantha), + "Grek" => Some(Script::Greek), + "Gujr" => Some(Script::Gujarati), + "Guru" => Some(Script::Gurmukhi), + "Hang" => Some(Script::Hangul), + "Hani" => Some(Script::Han), + "Hano" => Some(Script::Hanunoo), + "Hatr" => Some(Script::Hatran), + "Hebr" => Some(Script::Hebrew), + "Hira" => Some(Script::Hiragana), + "Hluw" => Some(Script::Anatolian_Hieroglyphs), + "Hmng" => Some(Script::Pahawh_Hmong), + "Hmnp" => Some(Script::Nyiakeng_Puachue_Hmong), + "Hung" => Some(Script::Old_Hungarian), + "Ital" => Some(Script::Old_Italic), + "Java" => Some(Script::Javanese), + "Kali" => Some(Script::Kayah_Li), + "Kana" => Some(Script::Katakana), + "Khar" => Some(Script::Kharoshthi), + "Khmr" => Some(Script::Khmer), + "Khoj" => Some(Script::Khojki), + "Kits" => Some(Script::Khitan_Small_Script), + "Knda" => Some(Script::Kannada), + "Kthi" => Some(Script::Kaithi), + "Lana" => Some(Script::Tai_Tham), + "Laoo" => Some(Script::Lao), + "Latn" => Some(Script::Latin), + "Lepc" => Some(Script::Lepcha), + "Limb" => Some(Script::Limbu), + "Lina" => Some(Script::Linear_A), + "Linb" => Some(Script::Linear_B), + "Lisu" => Some(Script::Lisu), + "Lyci" => Some(Script::Lycian), + "Lydi" => Some(Script::Lydian), + "Mahj" => Some(Script::Mahajani), + "Maka" => Some(Script::Makasar), + "Mand" => Some(Script::Mandaic), + "Mani" => Some(Script::Manichaean), + "Marc" => Some(Script::Marchen), + "Medf" => Some(Script::Medefaidrin), + "Mend" => Some(Script::Mende_Kikakui), + "Merc" => Some(Script::Meroitic_Cursive), + "Mero" => Some(Script::Meroitic_Hieroglyphs), + "Mlym" => Some(Script::Malayalam), + "Modi" => Some(Script::Modi), + "Mong" => Some(Script::Mongolian), + "Mroo" => Some(Script::Mro), + "Mtei" => Some(Script::Meetei_Mayek), + "Mult" => Some(Script::Multani), + "Mymr" => Some(Script::Myanmar), + "Nand" => Some(Script::Nandinagari), + "Narb" => Some(Script::Old_North_Arabian), + "Nbat" => Some(Script::Nabataean), + "Newa" => Some(Script::Newa), + "Nkoo" => Some(Script::Nko), + "Nshu" => Some(Script::Nushu), + "Ogam" => Some(Script::Ogham), + "Olck" => Some(Script::Ol_Chiki), + "Orkh" => Some(Script::Old_Turkic), + "Orya" => Some(Script::Oriya), + "Osge" => Some(Script::Osage), + "Osma" => Some(Script::Osmanya), + "Palm" => Some(Script::Palmyrene), + "Pauc" => Some(Script::Pau_Cin_Hau), + "Perm" => Some(Script::Old_Permic), + "Phag" => Some(Script::Phags_Pa), + "Phli" => Some(Script::Inscriptional_Pahlavi), + "Phlp" => Some(Script::Psalter_Pahlavi), + "Phnx" => Some(Script::Phoenician), + "Plrd" => Some(Script::Miao), + "Prti" => Some(Script::Inscriptional_Parthian), + "Rjng" => Some(Script::Rejang), + "Rohg" => Some(Script::Hanifi_Rohingya), + "Runr" => Some(Script::Runic), + "Samr" => Some(Script::Samaritan), + "Sarb" => Some(Script::Old_South_Arabian), + "Saur" => Some(Script::Saurashtra), + "Sgnw" => Some(Script::SignWriting), + "Shaw" => Some(Script::Shavian), + "Shrd" => Some(Script::Sharada), + "Sidd" => Some(Script::Siddham), + "Sind" => Some(Script::Khudawadi), + "Sinh" => Some(Script::Sinhala), + "Sogd" => Some(Script::Sogdian), + "Sogo" => Some(Script::Old_Sogdian), + "Sora" => Some(Script::Sora_Sompeng), + "Soyo" => Some(Script::Soyombo), + "Sund" => Some(Script::Sundanese), + "Sylo" => Some(Script::Syloti_Nagri), + "Syrc" => Some(Script::Syriac), + "Tagb" => Some(Script::Tagbanwa), + "Takr" => Some(Script::Takri), + "Tale" => Some(Script::Tai_Le), + "Talu" => Some(Script::New_Tai_Lue), + "Taml" => Some(Script::Tamil), + "Tang" => Some(Script::Tangut), + "Tavt" => Some(Script::Tai_Viet), + "Telu" => Some(Script::Telugu), + "Tfng" => Some(Script::Tifinagh), + "Tglg" => Some(Script::Tagalog), + "Thaa" => Some(Script::Thaana), + "Thai" => Some(Script::Thai), + "Tibt" => Some(Script::Tibetan), + "Tirh" => Some(Script::Tirhuta), + "Ugar" => Some(Script::Ugaritic), + "Vaii" => Some(Script::Vai), + "Wara" => Some(Script::Warang_Citi), + "Wcho" => Some(Script::Wancho), + "Xpeo" => Some(Script::Old_Persian), + "Xsux" => Some(Script::Cuneiform), + "Yezi" => Some(Script::Yezidi), + "Yiii" => Some(Script::Yi), + "Zanb" => Some(Script::Zanabazar_Square), + _ => None, + } + } + + #[inline] + pub(crate) fn for_integer(value: u8) -> Self { + match value { + 0 => Script::Adlam, + 1 => Script::Caucasian_Albanian, + 2 => Script::Ahom, + 3 => Script::Arabic, + 4 => Script::Imperial_Aramaic, + 5 => Script::Armenian, + 6 => Script::Avestan, + 7 => Script::Balinese, + 8 => Script::Bamum, + 9 => Script::Bassa_Vah, + 10 => Script::Batak, + 11 => Script::Bengali, + 12 => Script::Bhaiksuki, + 13 => Script::Bopomofo, + 14 => Script::Brahmi, + 15 => Script::Braille, + 16 => Script::Buginese, + 17 => Script::Buhid, + 18 => Script::Chakma, + 19 => Script::Canadian_Aboriginal, + 20 => Script::Carian, + 21 => Script::Cham, + 22 => Script::Cherokee, + 23 => Script::Chorasmian, + 24 => Script::Coptic, + 25 => Script::Cypriot, + 26 => Script::Cyrillic, + 27 => Script::Devanagari, + 28 => Script::Dives_Akuru, + 29 => Script::Dogra, + 30 => Script::Deseret, + 31 => Script::Duployan, + 32 => Script::Egyptian_Hieroglyphs, + 33 => Script::Elbasan, + 34 => Script::Elymaic, + 35 => Script::Ethiopic, + 36 => Script::Georgian, + 37 => Script::Glagolitic, + 38 => Script::Gunjala_Gondi, + 39 => Script::Masaram_Gondi, + 40 => Script::Gothic, + 41 => Script::Grantha, + 42 => Script::Greek, + 43 => Script::Gujarati, + 44 => Script::Gurmukhi, + 45 => Script::Hangul, + 46 => Script::Han, + 47 => Script::Hanunoo, + 48 => Script::Hatran, + 49 => Script::Hebrew, + 50 => Script::Hiragana, + 51 => Script::Anatolian_Hieroglyphs, + 52 => Script::Pahawh_Hmong, + 53 => Script::Nyiakeng_Puachue_Hmong, + 54 => Script::Old_Hungarian, + 55 => Script::Old_Italic, + 56 => Script::Javanese, + 57 => Script::Kayah_Li, + 58 => Script::Katakana, + 59 => Script::Kharoshthi, + 60 => Script::Khmer, + 61 => Script::Khojki, + 62 => Script::Khitan_Small_Script, + 63 => Script::Kannada, + 64 => Script::Kaithi, + 65 => Script::Tai_Tham, + 66 => Script::Lao, + 67 => Script::Latin, + 68 => Script::Lepcha, + 69 => Script::Limbu, + 70 => Script::Linear_A, + 71 => Script::Linear_B, + 72 => Script::Lisu, + 73 => Script::Lycian, + 74 => Script::Lydian, + 75 => Script::Mahajani, + 76 => Script::Makasar, + 77 => Script::Mandaic, + 78 => Script::Manichaean, + 79 => Script::Marchen, + 80 => Script::Medefaidrin, + 81 => Script::Mende_Kikakui, + 82 => Script::Meroitic_Cursive, + 83 => Script::Meroitic_Hieroglyphs, + 84 => Script::Malayalam, + 85 => Script::Modi, + 86 => Script::Mongolian, + 87 => Script::Mro, + 88 => Script::Meetei_Mayek, + 89 => Script::Multani, + 90 => Script::Myanmar, + 91 => Script::Nandinagari, + 92 => Script::Old_North_Arabian, + 93 => Script::Nabataean, + 94 => Script::Newa, + 95 => Script::Nko, + 96 => Script::Nushu, + 97 => Script::Ogham, + 98 => Script::Ol_Chiki, + 99 => Script::Old_Turkic, + 100 => Script::Oriya, + 101 => Script::Osage, + 102 => Script::Osmanya, + 103 => Script::Palmyrene, + 104 => Script::Pau_Cin_Hau, + 105 => Script::Old_Permic, + 106 => Script::Phags_Pa, + 107 => Script::Inscriptional_Pahlavi, + 108 => Script::Psalter_Pahlavi, + 109 => Script::Phoenician, + 110 => Script::Miao, + 111 => Script::Inscriptional_Parthian, + 112 => Script::Rejang, + 113 => Script::Hanifi_Rohingya, + 114 => Script::Runic, + 115 => Script::Samaritan, + 116 => Script::Old_South_Arabian, + 117 => Script::Saurashtra, + 118 => Script::SignWriting, + 119 => Script::Shavian, + 120 => Script::Sharada, + 121 => Script::Siddham, + 122 => Script::Khudawadi, + 123 => Script::Sinhala, + 124 => Script::Sogdian, + 125 => Script::Old_Sogdian, + 126 => Script::Sora_Sompeng, + 127 => Script::Soyombo, + 128 => Script::Sundanese, + 129 => Script::Syloti_Nagri, + 130 => Script::Syriac, + 131 => Script::Tagbanwa, + 132 => Script::Takri, + 133 => Script::Tai_Le, + 134 => Script::New_Tai_Lue, + 135 => Script::Tamil, + 136 => Script::Tangut, + 137 => Script::Tai_Viet, + 138 => Script::Telugu, + 139 => Script::Tifinagh, + 140 => Script::Tagalog, + 141 => Script::Thaana, + 142 => Script::Thai, + 143 => Script::Tibetan, + 144 => Script::Tirhuta, + 145 => Script::Ugaritic, + 146 => Script::Vai, + 147 => Script::Warang_Citi, + 148 => Script::Wancho, + 149 => Script::Old_Persian, + 150 => Script::Cuneiform, + 151 => Script::Yezidi, + 152 => Script::Yi, + 153 => Script::Zanabazar_Square, + _ => unreachable!(), + } + } + +} + +pub fn bsearch_range_value_table(c: char, r: &'static [(char, char, T)]) -> Option { + use core::cmp::Ordering::{Equal, Less, Greater}; + match r.binary_search_by(|&(lo, hi, _)| { + if lo <= c && c <= hi { Equal } + else if hi < c { Less } + else { Greater } + }) { + Ok(idx) => { + let (_, _, cat) = r[idx]; + Some(cat) + } + Err(_) => None + } +} + +#[inline] +pub fn get_script(c: char) -> Option