mod constants {
pub const LETTER_ALT: char = '𐔰';
pub const LETTER_BET: char = '𐔱';
pub const LETTER_GIM: char = '𐔲';
pub const LETTER_DAT: char = '𐔳';
pub const LETTER_EB: char = '𐔴';
pub const LETTER_ZARL: char = '𐔵';
pub const LETTER_EYN: char = '𐔶';
pub const LETTER_ZHIL: char = '𐔷';
pub const LETTER_TAS: char = '𐔸';
pub const LETTER_CHA: char = '𐔹';
pub const LETTER_YOWD: char = '𐔺';
pub const LETTER_ZHA: char = '𐔻';
pub const LETTER_IRB: char = '𐔼';
pub const LETTER_SHA: char = '𐔽';
pub const LETTER_LAN: char = '𐔾';
pub const LETTER_INYA: char = '𐔿';
pub const LETTER_XEYN: char = '𐕀';
pub const LETTER_DYAN: char = '𐕁';
pub const LETTER_CAR: char = '𐕂';
pub const LETTER_JHOX: char = '𐕃';
pub const LETTER_KAR: char = '𐕄';
pub const LETTER_LYIT: char = '𐕅';
pub const LETTER_HEYT: char = '𐕆';
pub const LETTER_QAY: char = '𐕇';
pub const LETTER_AOR: char = '𐕈';
pub const LETTER_CHOY: char = '𐕉';
pub const LETTER_CHI: char = '𐕊';
pub const LETTER_CYAY: char = '𐕋';
pub const LETTER_MAQ: char = '𐕌';
pub const LETTER_QAR: char = '𐕍';
pub const LETTER_NOWC: char = '𐕎';
pub const LETTER_DZYAY: char = '𐕏';
pub const LETTER_SHAK: char = '𐕐';
pub const LETTER_JAYN: char = '𐕑';
pub const LETTER_ON: char = '𐕒';
pub const LETTER_TYAY: char = '𐕓';
pub const LETTER_FAM: char = '𐕔';
pub const LETTER_DZAY: char = '𐕕';
pub const LETTER_CHAT: char = '𐕖';
pub const LETTER_PEN: char = '𐕗';
pub const LETTER_GHEYS: char = '𐕘';
pub const LETTER_RAT: char = '𐕙';
pub const LETTER_SEYK: char = '𐕚';
pub const LETTER_VEYZ: char = '𐕛';
pub const LETTER_TIWR: char = '𐕜';
pub const LETTER_SHOY: char = '𐕝';
pub const LETTER_IWN: char = '𐕞';
pub const LETTER_CYAW: char = '𐕟';
pub const LETTER_CAYN: char = '𐕠';
pub const LETTER_YAYD: char = '𐕡';
pub const LETTER_PIWR: char = '𐕢';
pub const LETTER_KIW: char = '𐕣';
}
#[derive(Debug, Clone, Copy, Hash, PartialEq, Eq)]
pub enum CaucasianAlbanian {
LetterAlt,
LetterBet,
LetterGim,
LetterDat,
LetterEb,
LetterZarl,
LetterEyn,
LetterZhil,
LetterTas,
LetterCha,
LetterYowd,
LetterZha,
LetterIrb,
LetterSha,
LetterLan,
LetterInya,
LetterXeyn,
LetterDyan,
LetterCar,
LetterJhox,
LetterKar,
LetterLyit,
LetterHeyt,
LetterQay,
LetterAor,
LetterChoy,
LetterChi,
LetterCyay,
LetterMaq,
LetterQar,
LetterNowc,
LetterDzyay,
LetterShak,
LetterJayn,
LetterOn,
LetterTyay,
LetterFam,
LetterDzay,
LetterChat,
LetterPen,
LetterGheys,
LetterRat,
LetterSeyk,
LetterVeyz,
LetterTiwr,
LetterShoy,
LetterIwn,
LetterCyaw,
LetterCayn,
LetterYayd,
LetterPiwr,
LetterKiw,
}
impl Into<char> for CaucasianAlbanian {
fn into(self) -> char {
use constants::*;
match self {
CaucasianAlbanian::LetterAlt => LETTER_ALT,
CaucasianAlbanian::LetterBet => LETTER_BET,
CaucasianAlbanian::LetterGim => LETTER_GIM,
CaucasianAlbanian::LetterDat => LETTER_DAT,
CaucasianAlbanian::LetterEb => LETTER_EB,
CaucasianAlbanian::LetterZarl => LETTER_ZARL,
CaucasianAlbanian::LetterEyn => LETTER_EYN,
CaucasianAlbanian::LetterZhil => LETTER_ZHIL,
CaucasianAlbanian::LetterTas => LETTER_TAS,
CaucasianAlbanian::LetterCha => LETTER_CHA,
CaucasianAlbanian::LetterYowd => LETTER_YOWD,
CaucasianAlbanian::LetterZha => LETTER_ZHA,
CaucasianAlbanian::LetterIrb => LETTER_IRB,
CaucasianAlbanian::LetterSha => LETTER_SHA,
CaucasianAlbanian::LetterLan => LETTER_LAN,
CaucasianAlbanian::LetterInya => LETTER_INYA,
CaucasianAlbanian::LetterXeyn => LETTER_XEYN,
CaucasianAlbanian::LetterDyan => LETTER_DYAN,
CaucasianAlbanian::LetterCar => LETTER_CAR,
CaucasianAlbanian::LetterJhox => LETTER_JHOX,
CaucasianAlbanian::LetterKar => LETTER_KAR,
CaucasianAlbanian::LetterLyit => LETTER_LYIT,
CaucasianAlbanian::LetterHeyt => LETTER_HEYT,
CaucasianAlbanian::LetterQay => LETTER_QAY,
CaucasianAlbanian::LetterAor => LETTER_AOR,
CaucasianAlbanian::LetterChoy => LETTER_CHOY,
CaucasianAlbanian::LetterChi => LETTER_CHI,
CaucasianAlbanian::LetterCyay => LETTER_CYAY,
CaucasianAlbanian::LetterMaq => LETTER_MAQ,
CaucasianAlbanian::LetterQar => LETTER_QAR,
CaucasianAlbanian::LetterNowc => LETTER_NOWC,
CaucasianAlbanian::LetterDzyay => LETTER_DZYAY,
CaucasianAlbanian::LetterShak => LETTER_SHAK,
CaucasianAlbanian::LetterJayn => LETTER_JAYN,
CaucasianAlbanian::LetterOn => LETTER_ON,
CaucasianAlbanian::LetterTyay => LETTER_TYAY,
CaucasianAlbanian::LetterFam => LETTER_FAM,
CaucasianAlbanian::LetterDzay => LETTER_DZAY,
CaucasianAlbanian::LetterChat => LETTER_CHAT,
CaucasianAlbanian::LetterPen => LETTER_PEN,
CaucasianAlbanian::LetterGheys => LETTER_GHEYS,
CaucasianAlbanian::LetterRat => LETTER_RAT,
CaucasianAlbanian::LetterSeyk => LETTER_SEYK,
CaucasianAlbanian::LetterVeyz => LETTER_VEYZ,
CaucasianAlbanian::LetterTiwr => LETTER_TIWR,
CaucasianAlbanian::LetterShoy => LETTER_SHOY,
CaucasianAlbanian::LetterIwn => LETTER_IWN,
CaucasianAlbanian::LetterCyaw => LETTER_CYAW,
CaucasianAlbanian::LetterCayn => LETTER_CAYN,
CaucasianAlbanian::LetterYayd => LETTER_YAYD,
CaucasianAlbanian::LetterPiwr => LETTER_PIWR,
CaucasianAlbanian::LetterKiw => LETTER_KIW,
}
}
}
impl std::convert::TryFrom<char> for CaucasianAlbanian {
type Error = ();
fn try_from(c: char) -> Result<Self, Self::Error> {
use constants::*;
match c {
LETTER_ALT => Ok(CaucasianAlbanian::LetterAlt),
LETTER_BET => Ok(CaucasianAlbanian::LetterBet),
LETTER_GIM => Ok(CaucasianAlbanian::LetterGim),
LETTER_DAT => Ok(CaucasianAlbanian::LetterDat),
LETTER_EB => Ok(CaucasianAlbanian::LetterEb),
LETTER_ZARL => Ok(CaucasianAlbanian::LetterZarl),
LETTER_EYN => Ok(CaucasianAlbanian::LetterEyn),
LETTER_ZHIL => Ok(CaucasianAlbanian::LetterZhil),
LETTER_TAS => Ok(CaucasianAlbanian::LetterTas),
LETTER_CHA => Ok(CaucasianAlbanian::LetterCha),
LETTER_YOWD => Ok(CaucasianAlbanian::LetterYowd),
LETTER_ZHA => Ok(CaucasianAlbanian::LetterZha),
LETTER_IRB => Ok(CaucasianAlbanian::LetterIrb),
LETTER_SHA => Ok(CaucasianAlbanian::LetterSha),
LETTER_LAN => Ok(CaucasianAlbanian::LetterLan),
LETTER_INYA => Ok(CaucasianAlbanian::LetterInya),
LETTER_XEYN => Ok(CaucasianAlbanian::LetterXeyn),
LETTER_DYAN => Ok(CaucasianAlbanian::LetterDyan),
LETTER_CAR => Ok(CaucasianAlbanian::LetterCar),
LETTER_JHOX => Ok(CaucasianAlbanian::LetterJhox),
LETTER_KAR => Ok(CaucasianAlbanian::LetterKar),
LETTER_LYIT => Ok(CaucasianAlbanian::LetterLyit),
LETTER_HEYT => Ok(CaucasianAlbanian::LetterHeyt),
LETTER_QAY => Ok(CaucasianAlbanian::LetterQay),
LETTER_AOR => Ok(CaucasianAlbanian::LetterAor),
LETTER_CHOY => Ok(CaucasianAlbanian::LetterChoy),
LETTER_CHI => Ok(CaucasianAlbanian::LetterChi),
LETTER_CYAY => Ok(CaucasianAlbanian::LetterCyay),
LETTER_MAQ => Ok(CaucasianAlbanian::LetterMaq),
LETTER_QAR => Ok(CaucasianAlbanian::LetterQar),
LETTER_NOWC => Ok(CaucasianAlbanian::LetterNowc),
LETTER_DZYAY => Ok(CaucasianAlbanian::LetterDzyay),
LETTER_SHAK => Ok(CaucasianAlbanian::LetterShak),
LETTER_JAYN => Ok(CaucasianAlbanian::LetterJayn),
LETTER_ON => Ok(CaucasianAlbanian::LetterOn),
LETTER_TYAY => Ok(CaucasianAlbanian::LetterTyay),
LETTER_FAM => Ok(CaucasianAlbanian::LetterFam),
LETTER_DZAY => Ok(CaucasianAlbanian::LetterDzay),
LETTER_CHAT => Ok(CaucasianAlbanian::LetterChat),
LETTER_PEN => Ok(CaucasianAlbanian::LetterPen),
LETTER_GHEYS => Ok(CaucasianAlbanian::LetterGheys),
LETTER_RAT => Ok(CaucasianAlbanian::LetterRat),
LETTER_SEYK => Ok(CaucasianAlbanian::LetterSeyk),
LETTER_VEYZ => Ok(CaucasianAlbanian::LetterVeyz),
LETTER_TIWR => Ok(CaucasianAlbanian::LetterTiwr),
LETTER_SHOY => Ok(CaucasianAlbanian::LetterShoy),
LETTER_IWN => Ok(CaucasianAlbanian::LetterIwn),
LETTER_CYAW => Ok(CaucasianAlbanian::LetterCyaw),
LETTER_CAYN => Ok(CaucasianAlbanian::LetterCayn),
LETTER_YAYD => Ok(CaucasianAlbanian::LetterYayd),
LETTER_PIWR => Ok(CaucasianAlbanian::LetterPiwr),
LETTER_KIW => Ok(CaucasianAlbanian::LetterKiw),
_ => Err(()),
}
}
}
impl Into<u32> for CaucasianAlbanian {
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 CaucasianAlbanian {
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 CaucasianAlbanian {
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 CaucasianAlbanian {
pub fn new() -> Self {
CaucasianAlbanian::LetterAlt
}
pub fn name(&self) -> &str {
match self {
CaucasianAlbanian::LetterAlt => "caucasian albanian letter alt",
CaucasianAlbanian::LetterBet => "caucasian albanian letter bet",
CaucasianAlbanian::LetterGim => "caucasian albanian letter gim",
CaucasianAlbanian::LetterDat => "caucasian albanian letter dat",
CaucasianAlbanian::LetterEb => "caucasian albanian letter eb",
CaucasianAlbanian::LetterZarl => "caucasian albanian letter zarl",
CaucasianAlbanian::LetterEyn => "caucasian albanian letter eyn",
CaucasianAlbanian::LetterZhil => "caucasian albanian letter zhil",
CaucasianAlbanian::LetterTas => "caucasian albanian letter tas",
CaucasianAlbanian::LetterCha => "caucasian albanian letter cha",
CaucasianAlbanian::LetterYowd => "caucasian albanian letter yowd",
CaucasianAlbanian::LetterZha => "caucasian albanian letter zha",
CaucasianAlbanian::LetterIrb => "caucasian albanian letter irb",
CaucasianAlbanian::LetterSha => "caucasian albanian letter sha",
CaucasianAlbanian::LetterLan => "caucasian albanian letter lan",
CaucasianAlbanian::LetterInya => "caucasian albanian letter inya",
CaucasianAlbanian::LetterXeyn => "caucasian albanian letter xeyn",
CaucasianAlbanian::LetterDyan => "caucasian albanian letter dyan",
CaucasianAlbanian::LetterCar => "caucasian albanian letter car",
CaucasianAlbanian::LetterJhox => "caucasian albanian letter jhox",
CaucasianAlbanian::LetterKar => "caucasian albanian letter kar",
CaucasianAlbanian::LetterLyit => "caucasian albanian letter lyit",
CaucasianAlbanian::LetterHeyt => "caucasian albanian letter heyt",
CaucasianAlbanian::LetterQay => "caucasian albanian letter qay",
CaucasianAlbanian::LetterAor => "caucasian albanian letter aor",
CaucasianAlbanian::LetterChoy => "caucasian albanian letter choy",
CaucasianAlbanian::LetterChi => "caucasian albanian letter chi",
CaucasianAlbanian::LetterCyay => "caucasian albanian letter cyay",
CaucasianAlbanian::LetterMaq => "caucasian albanian letter maq",
CaucasianAlbanian::LetterQar => "caucasian albanian letter qar",
CaucasianAlbanian::LetterNowc => "caucasian albanian letter nowc",
CaucasianAlbanian::LetterDzyay => "caucasian albanian letter dzyay",
CaucasianAlbanian::LetterShak => "caucasian albanian letter shak",
CaucasianAlbanian::LetterJayn => "caucasian albanian letter jayn",
CaucasianAlbanian::LetterOn => "caucasian albanian letter on",
CaucasianAlbanian::LetterTyay => "caucasian albanian letter tyay",
CaucasianAlbanian::LetterFam => "caucasian albanian letter fam",
CaucasianAlbanian::LetterDzay => "caucasian albanian letter dzay",
CaucasianAlbanian::LetterChat => "caucasian albanian letter chat",
CaucasianAlbanian::LetterPen => "caucasian albanian letter pen",
CaucasianAlbanian::LetterGheys => "caucasian albanian letter gheys",
CaucasianAlbanian::LetterRat => "caucasian albanian letter rat",
CaucasianAlbanian::LetterSeyk => "caucasian albanian letter seyk",
CaucasianAlbanian::LetterVeyz => "caucasian albanian letter veyz",
CaucasianAlbanian::LetterTiwr => "caucasian albanian letter tiwr",
CaucasianAlbanian::LetterShoy => "caucasian albanian letter shoy",
CaucasianAlbanian::LetterIwn => "caucasian albanian letter iwn",
CaucasianAlbanian::LetterCyaw => "caucasian albanian letter cyaw",
CaucasianAlbanian::LetterCayn => "caucasian albanian letter cayn",
CaucasianAlbanian::LetterYayd => "caucasian albanian letter yayd",
CaucasianAlbanian::LetterPiwr => "caucasian albanian letter piwr",
CaucasianAlbanian::LetterKiw => "caucasian albanian letter kiw",
}
}
}