mod constants {
pub const COMBINING_GLAGOLITIC_LETTER_AZU: char = '𞀀';
pub const COMBINING_GLAGOLITIC_LETTER_BUKY: char = '𞀁';
pub const COMBINING_GLAGOLITIC_LETTER_VEDE: char = '𞀂';
pub const COMBINING_GLAGOLITIC_LETTER_GLAGOLI: char = '𞀃';
pub const COMBINING_GLAGOLITIC_LETTER_DOBRO: char = '𞀄';
pub const COMBINING_GLAGOLITIC_LETTER_YESTU: char = '𞀅';
pub const COMBINING_GLAGOLITIC_LETTER_ZHIVETE: char = '𞀆';
pub const COMBINING_GLAGOLITIC_LETTER_ZEMLJA: char = '𞀈';
pub const COMBINING_GLAGOLITIC_LETTER_IZHE: char = '𞀉';
pub const COMBINING_GLAGOLITIC_LETTER_INITIAL_IZHE: char = '𞀊';
pub const COMBINING_GLAGOLITIC_LETTER_I: char = '𞀋';
pub const COMBINING_GLAGOLITIC_LETTER_DJERVI: char = '𞀌';
pub const COMBINING_GLAGOLITIC_LETTER_KAKO: char = '𞀍';
pub const COMBINING_GLAGOLITIC_LETTER_LJUDIJE: char = '𞀎';
pub const COMBINING_GLAGOLITIC_LETTER_MYSLITE: char = '𞀏';
pub const COMBINING_GLAGOLITIC_LETTER_NASHI: char = '𞀐';
pub const COMBINING_GLAGOLITIC_LETTER_ONU: char = '𞀑';
pub const COMBINING_GLAGOLITIC_LETTER_POKOJI: char = '𞀒';
pub const COMBINING_GLAGOLITIC_LETTER_RITSI: char = '𞀓';
pub const COMBINING_GLAGOLITIC_LETTER_SLOVO: char = '𞀔';
pub const COMBINING_GLAGOLITIC_LETTER_TVRIDO: char = '𞀕';
pub const COMBINING_GLAGOLITIC_LETTER_UKU: char = '𞀖';
pub const COMBINING_GLAGOLITIC_LETTER_FRITU: char = '𞀗';
pub const COMBINING_GLAGOLITIC_LETTER_HERU: char = '𞀘';
pub const COMBINING_GLAGOLITIC_LETTER_SHTA: char = '𞀛';
pub const COMBINING_GLAGOLITIC_LETTER_TSI: char = '𞀜';
pub const COMBINING_GLAGOLITIC_LETTER_CHRIVI: char = '𞀝';
pub const COMBINING_GLAGOLITIC_LETTER_SHA: char = '𞀞';
pub const COMBINING_GLAGOLITIC_LETTER_YERU: char = '𞀟';
pub const COMBINING_GLAGOLITIC_LETTER_YERI: char = '𞀠';
pub const COMBINING_GLAGOLITIC_LETTER_YATI: char = '𞀡';
pub const COMBINING_GLAGOLITIC_LETTER_YU: char = '𞀣';
pub const COMBINING_GLAGOLITIC_LETTER_SMALL_YUS: char = '𞀤';
pub const COMBINING_GLAGOLITIC_LETTER_YO: char = '𞀦';
pub const COMBINING_GLAGOLITIC_LETTER_IOTATED_SMALL_YUS: char = '𞀧';
pub const COMBINING_GLAGOLITIC_LETTER_BIG_YUS: char = '𞀨';
pub const COMBINING_GLAGOLITIC_LETTER_IOTATED_BIG_YUS: char = '𞀩';
pub const COMBINING_GLAGOLITIC_LETTER_FITA: char = '𞀪';
}
#[derive(Debug, Clone, Copy, Hash, PartialEq, Eq)]
pub enum GlagoliticSupplement {
CombiningGlagoliticLetterAzu,
CombiningGlagoliticLetterBuky,
CombiningGlagoliticLetterVede,
CombiningGlagoliticLetterGlagoli,
CombiningGlagoliticLetterDobro,
CombiningGlagoliticLetterYestu,
CombiningGlagoliticLetterZhivete,
CombiningGlagoliticLetterZemlja,
CombiningGlagoliticLetterIzhe,
CombiningGlagoliticLetterInitialIzhe,
CombiningGlagoliticLetterI,
CombiningGlagoliticLetterDjervi,
CombiningGlagoliticLetterKako,
CombiningGlagoliticLetterLjudije,
CombiningGlagoliticLetterMyslite,
CombiningGlagoliticLetterNashi,
CombiningGlagoliticLetterOnu,
CombiningGlagoliticLetterPokoji,
CombiningGlagoliticLetterRitsi,
CombiningGlagoliticLetterSlovo,
CombiningGlagoliticLetterTvrido,
CombiningGlagoliticLetterUku,
CombiningGlagoliticLetterFritu,
CombiningGlagoliticLetterHeru,
CombiningGlagoliticLetterShta,
CombiningGlagoliticLetterTsi,
CombiningGlagoliticLetterChrivi,
CombiningGlagoliticLetterSha,
CombiningGlagoliticLetterYeru,
CombiningGlagoliticLetterYeri,
CombiningGlagoliticLetterYati,
CombiningGlagoliticLetterYu,
CombiningGlagoliticLetterSmallYus,
CombiningGlagoliticLetterYo,
CombiningGlagoliticLetterIotatedSmallYus,
CombiningGlagoliticLetterBigYus,
CombiningGlagoliticLetterIotatedBigYus,
CombiningGlagoliticLetterFita,
}
impl Into<char> for GlagoliticSupplement {
fn into(self) -> char {
use constants::*;
match self {
GlagoliticSupplement::CombiningGlagoliticLetterAzu => COMBINING_GLAGOLITIC_LETTER_AZU,
GlagoliticSupplement::CombiningGlagoliticLetterBuky => COMBINING_GLAGOLITIC_LETTER_BUKY,
GlagoliticSupplement::CombiningGlagoliticLetterVede => COMBINING_GLAGOLITIC_LETTER_VEDE,
GlagoliticSupplement::CombiningGlagoliticLetterGlagoli => COMBINING_GLAGOLITIC_LETTER_GLAGOLI,
GlagoliticSupplement::CombiningGlagoliticLetterDobro => COMBINING_GLAGOLITIC_LETTER_DOBRO,
GlagoliticSupplement::CombiningGlagoliticLetterYestu => COMBINING_GLAGOLITIC_LETTER_YESTU,
GlagoliticSupplement::CombiningGlagoliticLetterZhivete => COMBINING_GLAGOLITIC_LETTER_ZHIVETE,
GlagoliticSupplement::CombiningGlagoliticLetterZemlja => COMBINING_GLAGOLITIC_LETTER_ZEMLJA,
GlagoliticSupplement::CombiningGlagoliticLetterIzhe => COMBINING_GLAGOLITIC_LETTER_IZHE,
GlagoliticSupplement::CombiningGlagoliticLetterInitialIzhe => COMBINING_GLAGOLITIC_LETTER_INITIAL_IZHE,
GlagoliticSupplement::CombiningGlagoliticLetterI => COMBINING_GLAGOLITIC_LETTER_I,
GlagoliticSupplement::CombiningGlagoliticLetterDjervi => COMBINING_GLAGOLITIC_LETTER_DJERVI,
GlagoliticSupplement::CombiningGlagoliticLetterKako => COMBINING_GLAGOLITIC_LETTER_KAKO,
GlagoliticSupplement::CombiningGlagoliticLetterLjudije => COMBINING_GLAGOLITIC_LETTER_LJUDIJE,
GlagoliticSupplement::CombiningGlagoliticLetterMyslite => COMBINING_GLAGOLITIC_LETTER_MYSLITE,
GlagoliticSupplement::CombiningGlagoliticLetterNashi => COMBINING_GLAGOLITIC_LETTER_NASHI,
GlagoliticSupplement::CombiningGlagoliticLetterOnu => COMBINING_GLAGOLITIC_LETTER_ONU,
GlagoliticSupplement::CombiningGlagoliticLetterPokoji => COMBINING_GLAGOLITIC_LETTER_POKOJI,
GlagoliticSupplement::CombiningGlagoliticLetterRitsi => COMBINING_GLAGOLITIC_LETTER_RITSI,
GlagoliticSupplement::CombiningGlagoliticLetterSlovo => COMBINING_GLAGOLITIC_LETTER_SLOVO,
GlagoliticSupplement::CombiningGlagoliticLetterTvrido => COMBINING_GLAGOLITIC_LETTER_TVRIDO,
GlagoliticSupplement::CombiningGlagoliticLetterUku => COMBINING_GLAGOLITIC_LETTER_UKU,
GlagoliticSupplement::CombiningGlagoliticLetterFritu => COMBINING_GLAGOLITIC_LETTER_FRITU,
GlagoliticSupplement::CombiningGlagoliticLetterHeru => COMBINING_GLAGOLITIC_LETTER_HERU,
GlagoliticSupplement::CombiningGlagoliticLetterShta => COMBINING_GLAGOLITIC_LETTER_SHTA,
GlagoliticSupplement::CombiningGlagoliticLetterTsi => COMBINING_GLAGOLITIC_LETTER_TSI,
GlagoliticSupplement::CombiningGlagoliticLetterChrivi => COMBINING_GLAGOLITIC_LETTER_CHRIVI,
GlagoliticSupplement::CombiningGlagoliticLetterSha => COMBINING_GLAGOLITIC_LETTER_SHA,
GlagoliticSupplement::CombiningGlagoliticLetterYeru => COMBINING_GLAGOLITIC_LETTER_YERU,
GlagoliticSupplement::CombiningGlagoliticLetterYeri => COMBINING_GLAGOLITIC_LETTER_YERI,
GlagoliticSupplement::CombiningGlagoliticLetterYati => COMBINING_GLAGOLITIC_LETTER_YATI,
GlagoliticSupplement::CombiningGlagoliticLetterYu => COMBINING_GLAGOLITIC_LETTER_YU,
GlagoliticSupplement::CombiningGlagoliticLetterSmallYus => COMBINING_GLAGOLITIC_LETTER_SMALL_YUS,
GlagoliticSupplement::CombiningGlagoliticLetterYo => COMBINING_GLAGOLITIC_LETTER_YO,
GlagoliticSupplement::CombiningGlagoliticLetterIotatedSmallYus => COMBINING_GLAGOLITIC_LETTER_IOTATED_SMALL_YUS,
GlagoliticSupplement::CombiningGlagoliticLetterBigYus => COMBINING_GLAGOLITIC_LETTER_BIG_YUS,
GlagoliticSupplement::CombiningGlagoliticLetterIotatedBigYus => COMBINING_GLAGOLITIC_LETTER_IOTATED_BIG_YUS,
GlagoliticSupplement::CombiningGlagoliticLetterFita => COMBINING_GLAGOLITIC_LETTER_FITA,
}
}
}
impl std::convert::TryFrom<char> for GlagoliticSupplement {
type Error = ();
fn try_from(c: char) -> Result<Self, Self::Error> {
use constants::*;
match c {
COMBINING_GLAGOLITIC_LETTER_AZU => Ok(GlagoliticSupplement::CombiningGlagoliticLetterAzu),
COMBINING_GLAGOLITIC_LETTER_BUKY => Ok(GlagoliticSupplement::CombiningGlagoliticLetterBuky),
COMBINING_GLAGOLITIC_LETTER_VEDE => Ok(GlagoliticSupplement::CombiningGlagoliticLetterVede),
COMBINING_GLAGOLITIC_LETTER_GLAGOLI => Ok(GlagoliticSupplement::CombiningGlagoliticLetterGlagoli),
COMBINING_GLAGOLITIC_LETTER_DOBRO => Ok(GlagoliticSupplement::CombiningGlagoliticLetterDobro),
COMBINING_GLAGOLITIC_LETTER_YESTU => Ok(GlagoliticSupplement::CombiningGlagoliticLetterYestu),
COMBINING_GLAGOLITIC_LETTER_ZHIVETE => Ok(GlagoliticSupplement::CombiningGlagoliticLetterZhivete),
COMBINING_GLAGOLITIC_LETTER_ZEMLJA => Ok(GlagoliticSupplement::CombiningGlagoliticLetterZemlja),
COMBINING_GLAGOLITIC_LETTER_IZHE => Ok(GlagoliticSupplement::CombiningGlagoliticLetterIzhe),
COMBINING_GLAGOLITIC_LETTER_INITIAL_IZHE => Ok(GlagoliticSupplement::CombiningGlagoliticLetterInitialIzhe),
COMBINING_GLAGOLITIC_LETTER_I => Ok(GlagoliticSupplement::CombiningGlagoliticLetterI),
COMBINING_GLAGOLITIC_LETTER_DJERVI => Ok(GlagoliticSupplement::CombiningGlagoliticLetterDjervi),
COMBINING_GLAGOLITIC_LETTER_KAKO => Ok(GlagoliticSupplement::CombiningGlagoliticLetterKako),
COMBINING_GLAGOLITIC_LETTER_LJUDIJE => Ok(GlagoliticSupplement::CombiningGlagoliticLetterLjudije),
COMBINING_GLAGOLITIC_LETTER_MYSLITE => Ok(GlagoliticSupplement::CombiningGlagoliticLetterMyslite),
COMBINING_GLAGOLITIC_LETTER_NASHI => Ok(GlagoliticSupplement::CombiningGlagoliticLetterNashi),
COMBINING_GLAGOLITIC_LETTER_ONU => Ok(GlagoliticSupplement::CombiningGlagoliticLetterOnu),
COMBINING_GLAGOLITIC_LETTER_POKOJI => Ok(GlagoliticSupplement::CombiningGlagoliticLetterPokoji),
COMBINING_GLAGOLITIC_LETTER_RITSI => Ok(GlagoliticSupplement::CombiningGlagoliticLetterRitsi),
COMBINING_GLAGOLITIC_LETTER_SLOVO => Ok(GlagoliticSupplement::CombiningGlagoliticLetterSlovo),
COMBINING_GLAGOLITIC_LETTER_TVRIDO => Ok(GlagoliticSupplement::CombiningGlagoliticLetterTvrido),
COMBINING_GLAGOLITIC_LETTER_UKU => Ok(GlagoliticSupplement::CombiningGlagoliticLetterUku),
COMBINING_GLAGOLITIC_LETTER_FRITU => Ok(GlagoliticSupplement::CombiningGlagoliticLetterFritu),
COMBINING_GLAGOLITIC_LETTER_HERU => Ok(GlagoliticSupplement::CombiningGlagoliticLetterHeru),
COMBINING_GLAGOLITIC_LETTER_SHTA => Ok(GlagoliticSupplement::CombiningGlagoliticLetterShta),
COMBINING_GLAGOLITIC_LETTER_TSI => Ok(GlagoliticSupplement::CombiningGlagoliticLetterTsi),
COMBINING_GLAGOLITIC_LETTER_CHRIVI => Ok(GlagoliticSupplement::CombiningGlagoliticLetterChrivi),
COMBINING_GLAGOLITIC_LETTER_SHA => Ok(GlagoliticSupplement::CombiningGlagoliticLetterSha),
COMBINING_GLAGOLITIC_LETTER_YERU => Ok(GlagoliticSupplement::CombiningGlagoliticLetterYeru),
COMBINING_GLAGOLITIC_LETTER_YERI => Ok(GlagoliticSupplement::CombiningGlagoliticLetterYeri),
COMBINING_GLAGOLITIC_LETTER_YATI => Ok(GlagoliticSupplement::CombiningGlagoliticLetterYati),
COMBINING_GLAGOLITIC_LETTER_YU => Ok(GlagoliticSupplement::CombiningGlagoliticLetterYu),
COMBINING_GLAGOLITIC_LETTER_SMALL_YUS => Ok(GlagoliticSupplement::CombiningGlagoliticLetterSmallYus),
COMBINING_GLAGOLITIC_LETTER_YO => Ok(GlagoliticSupplement::CombiningGlagoliticLetterYo),
COMBINING_GLAGOLITIC_LETTER_IOTATED_SMALL_YUS => Ok(GlagoliticSupplement::CombiningGlagoliticLetterIotatedSmallYus),
COMBINING_GLAGOLITIC_LETTER_BIG_YUS => Ok(GlagoliticSupplement::CombiningGlagoliticLetterBigYus),
COMBINING_GLAGOLITIC_LETTER_IOTATED_BIG_YUS => Ok(GlagoliticSupplement::CombiningGlagoliticLetterIotatedBigYus),
COMBINING_GLAGOLITIC_LETTER_FITA => Ok(GlagoliticSupplement::CombiningGlagoliticLetterFita),
_ => Err(()),
}
}
}
impl Into<u32> for GlagoliticSupplement {
fn into(self) -> u32 {
let c: char = self.into();
let hex = c
.escape_unicode()
.to_string()
.replace("\\u{", "")
.replace("}", "");
u32::from_str_radix(&hex, 16).unwrap()
}
}
impl std::convert::TryFrom<u32> for GlagoliticSupplement {
type Error = ();
fn try_from(u: u32) -> Result<Self, Self::Error> {
if let Ok(c) = char::try_from(u) {
Self::try_from(c)
} else {
Err(())
}
}
}
impl Iterator for GlagoliticSupplement {
type Item = Self;
fn next(&mut self) -> Option<Self> {
let index: u32 = (*self).into();
use std::convert::TryFrom;
Self::try_from(index + 1).ok()
}
}
impl GlagoliticSupplement {
pub fn new() -> Self {
GlagoliticSupplement::CombiningGlagoliticLetterAzu
}
pub fn name(&self) -> &str {
match self {
GlagoliticSupplement::CombiningGlagoliticLetterAzu => "combining glagolitic letter azu",
GlagoliticSupplement::CombiningGlagoliticLetterBuky => "combining glagolitic letter buky",
GlagoliticSupplement::CombiningGlagoliticLetterVede => "combining glagolitic letter vede",
GlagoliticSupplement::CombiningGlagoliticLetterGlagoli => "combining glagolitic letter glagoli",
GlagoliticSupplement::CombiningGlagoliticLetterDobro => "combining glagolitic letter dobro",
GlagoliticSupplement::CombiningGlagoliticLetterYestu => "combining glagolitic letter yestu",
GlagoliticSupplement::CombiningGlagoliticLetterZhivete => "combining glagolitic letter zhivete",
GlagoliticSupplement::CombiningGlagoliticLetterZemlja => "combining glagolitic letter zemlja",
GlagoliticSupplement::CombiningGlagoliticLetterIzhe => "combining glagolitic letter izhe",
GlagoliticSupplement::CombiningGlagoliticLetterInitialIzhe => "combining glagolitic letter initial izhe",
GlagoliticSupplement::CombiningGlagoliticLetterI => "combining glagolitic letter i",
GlagoliticSupplement::CombiningGlagoliticLetterDjervi => "combining glagolitic letter djervi",
GlagoliticSupplement::CombiningGlagoliticLetterKako => "combining glagolitic letter kako",
GlagoliticSupplement::CombiningGlagoliticLetterLjudije => "combining glagolitic letter ljudije",
GlagoliticSupplement::CombiningGlagoliticLetterMyslite => "combining glagolitic letter myslite",
GlagoliticSupplement::CombiningGlagoliticLetterNashi => "combining glagolitic letter nashi",
GlagoliticSupplement::CombiningGlagoliticLetterOnu => "combining glagolitic letter onu",
GlagoliticSupplement::CombiningGlagoliticLetterPokoji => "combining glagolitic letter pokoji",
GlagoliticSupplement::CombiningGlagoliticLetterRitsi => "combining glagolitic letter ritsi",
GlagoliticSupplement::CombiningGlagoliticLetterSlovo => "combining glagolitic letter slovo",
GlagoliticSupplement::CombiningGlagoliticLetterTvrido => "combining glagolitic letter tvrido",
GlagoliticSupplement::CombiningGlagoliticLetterUku => "combining glagolitic letter uku",
GlagoliticSupplement::CombiningGlagoliticLetterFritu => "combining glagolitic letter fritu",
GlagoliticSupplement::CombiningGlagoliticLetterHeru => "combining glagolitic letter heru",
GlagoliticSupplement::CombiningGlagoliticLetterShta => "combining glagolitic letter shta",
GlagoliticSupplement::CombiningGlagoliticLetterTsi => "combining glagolitic letter tsi",
GlagoliticSupplement::CombiningGlagoliticLetterChrivi => "combining glagolitic letter chrivi",
GlagoliticSupplement::CombiningGlagoliticLetterSha => "combining glagolitic letter sha",
GlagoliticSupplement::CombiningGlagoliticLetterYeru => "combining glagolitic letter yeru",
GlagoliticSupplement::CombiningGlagoliticLetterYeri => "combining glagolitic letter yeri",
GlagoliticSupplement::CombiningGlagoliticLetterYati => "combining glagolitic letter yati",
GlagoliticSupplement::CombiningGlagoliticLetterYu => "combining glagolitic letter yu",
GlagoliticSupplement::CombiningGlagoliticLetterSmallYus => "combining glagolitic letter small yus",
GlagoliticSupplement::CombiningGlagoliticLetterYo => "combining glagolitic letter yo",
GlagoliticSupplement::CombiningGlagoliticLetterIotatedSmallYus => "combining glagolitic letter iotated small yus",
GlagoliticSupplement::CombiningGlagoliticLetterBigYus => "combining glagolitic letter big yus",
GlagoliticSupplement::CombiningGlagoliticLetterIotatedBigYus => "combining glagolitic letter iotated big yus",
GlagoliticSupplement::CombiningGlagoliticLetterFita => "combining glagolitic letter fita",
}
}
}