#[derive(Debug, Clone, Copy, Hash, PartialEq, Eq)]
pub enum WarangCiti {
CapitalLetterNgaa,
CapitalLetterA,
CapitalLetterWi,
CapitalLetterYu,
CapitalLetterYa,
CapitalLetterYo,
CapitalLetterIi,
CapitalLetterUu,
CapitalLetterE,
CapitalLetterO,
CapitalLetterAng,
CapitalLetterGa,
CapitalLetterKo,
CapitalLetterEny,
CapitalLetterYuj,
CapitalLetterUc,
CapitalLetterEnn,
CapitalLetterOdd,
CapitalLetterTte,
CapitalLetterNung,
CapitalLetterDa,
CapitalLetterAt,
CapitalLetterAm,
CapitalLetterBu,
CapitalLetterPu,
CapitalLetterHiyo,
CapitalLetterHolo,
CapitalLetterHorr,
CapitalLetterHar,
CapitalLetterSsuu,
CapitalLetterSii,
CapitalLetterViyo,
SmallLetterNgaa,
SmallLetterA,
SmallLetterWi,
SmallLetterYu,
SmallLetterYa,
SmallLetterYo,
SmallLetterIi,
SmallLetterUu,
SmallLetterE,
SmallLetterO,
SmallLetterAng,
SmallLetterGa,
SmallLetterKo,
SmallLetterEny,
SmallLetterYuj,
SmallLetterUc,
SmallLetterEnn,
SmallLetterOdd,
SmallLetterTte,
SmallLetterNung,
SmallLetterDa,
SmallLetterAt,
SmallLetterAm,
SmallLetterBu,
SmallLetterPu,
SmallLetterHiyo,
SmallLetterHolo,
SmallLetterHorr,
SmallLetterHar,
SmallLetterSsuu,
SmallLetterSii,
SmallLetterViyo,
DigitZero,
DigitOne,
DigitTwo,
DigitThree,
DigitFour,
DigitFive,
DigitSix,
DigitSeven,
DigitEight,
DigitNine,
NumberTen,
NumberTwenty,
NumberThirty,
NumberForty,
NumberFifty,
NumberSixty,
NumberSeventy,
NumberEighty,
NumberNinety,
}
impl Into<char> for WarangCiti {
fn into(self) -> char {
match self {
WarangCiti::CapitalLetterNgaa => '𑢠',
WarangCiti::CapitalLetterA => '𑢡',
WarangCiti::CapitalLetterWi => '𑢢',
WarangCiti::CapitalLetterYu => '𑢣',
WarangCiti::CapitalLetterYa => '𑢤',
WarangCiti::CapitalLetterYo => '𑢥',
WarangCiti::CapitalLetterIi => '𑢦',
WarangCiti::CapitalLetterUu => '𑢧',
WarangCiti::CapitalLetterE => '𑢨',
WarangCiti::CapitalLetterO => '𑢩',
WarangCiti::CapitalLetterAng => '𑢪',
WarangCiti::CapitalLetterGa => '𑢫',
WarangCiti::CapitalLetterKo => '𑢬',
WarangCiti::CapitalLetterEny => '𑢭',
WarangCiti::CapitalLetterYuj => '𑢮',
WarangCiti::CapitalLetterUc => '𑢯',
WarangCiti::CapitalLetterEnn => '𑢰',
WarangCiti::CapitalLetterOdd => '𑢱',
WarangCiti::CapitalLetterTte => '𑢲',
WarangCiti::CapitalLetterNung => '𑢳',
WarangCiti::CapitalLetterDa => '𑢴',
WarangCiti::CapitalLetterAt => '𑢵',
WarangCiti::CapitalLetterAm => '𑢶',
WarangCiti::CapitalLetterBu => '𑢷',
WarangCiti::CapitalLetterPu => '𑢸',
WarangCiti::CapitalLetterHiyo => '𑢹',
WarangCiti::CapitalLetterHolo => '𑢺',
WarangCiti::CapitalLetterHorr => '𑢻',
WarangCiti::CapitalLetterHar => '𑢼',
WarangCiti::CapitalLetterSsuu => '𑢽',
WarangCiti::CapitalLetterSii => '𑢾',
WarangCiti::CapitalLetterViyo => '𑢿',
WarangCiti::SmallLetterNgaa => '𑣀',
WarangCiti::SmallLetterA => '𑣁',
WarangCiti::SmallLetterWi => '𑣂',
WarangCiti::SmallLetterYu => '𑣃',
WarangCiti::SmallLetterYa => '𑣄',
WarangCiti::SmallLetterYo => '𑣅',
WarangCiti::SmallLetterIi => '𑣆',
WarangCiti::SmallLetterUu => '𑣇',
WarangCiti::SmallLetterE => '𑣈',
WarangCiti::SmallLetterO => '𑣉',
WarangCiti::SmallLetterAng => '𑣊',
WarangCiti::SmallLetterGa => '𑣋',
WarangCiti::SmallLetterKo => '𑣌',
WarangCiti::SmallLetterEny => '𑣍',
WarangCiti::SmallLetterYuj => '𑣎',
WarangCiti::SmallLetterUc => '𑣏',
WarangCiti::SmallLetterEnn => '𑣐',
WarangCiti::SmallLetterOdd => '𑣑',
WarangCiti::SmallLetterTte => '𑣒',
WarangCiti::SmallLetterNung => '𑣓',
WarangCiti::SmallLetterDa => '𑣔',
WarangCiti::SmallLetterAt => '𑣕',
WarangCiti::SmallLetterAm => '𑣖',
WarangCiti::SmallLetterBu => '𑣗',
WarangCiti::SmallLetterPu => '𑣘',
WarangCiti::SmallLetterHiyo => '𑣙',
WarangCiti::SmallLetterHolo => '𑣚',
WarangCiti::SmallLetterHorr => '𑣛',
WarangCiti::SmallLetterHar => '𑣜',
WarangCiti::SmallLetterSsuu => '𑣝',
WarangCiti::SmallLetterSii => '𑣞',
WarangCiti::SmallLetterViyo => '𑣟',
WarangCiti::DigitZero => '𑣠',
WarangCiti::DigitOne => '𑣡',
WarangCiti::DigitTwo => '𑣢',
WarangCiti::DigitThree => '𑣣',
WarangCiti::DigitFour => '𑣤',
WarangCiti::DigitFive => '𑣥',
WarangCiti::DigitSix => '𑣦',
WarangCiti::DigitSeven => '𑣧',
WarangCiti::DigitEight => '𑣨',
WarangCiti::DigitNine => '𑣩',
WarangCiti::NumberTen => '𑣪',
WarangCiti::NumberTwenty => '𑣫',
WarangCiti::NumberThirty => '𑣬',
WarangCiti::NumberForty => '𑣭',
WarangCiti::NumberFifty => '𑣮',
WarangCiti::NumberSixty => '𑣯',
WarangCiti::NumberSeventy => '𑣰',
WarangCiti::NumberEighty => '𑣱',
WarangCiti::NumberNinety => '𑣲',
}
}
}
impl std::convert::TryFrom<char> for WarangCiti {
type Error = ();
fn try_from(c: char) -> Result<Self, Self::Error> {
match c {
'𑢠' => Ok(WarangCiti::CapitalLetterNgaa),
'𑢡' => Ok(WarangCiti::CapitalLetterA),
'𑢢' => Ok(WarangCiti::CapitalLetterWi),
'𑢣' => Ok(WarangCiti::CapitalLetterYu),
'𑢤' => Ok(WarangCiti::CapitalLetterYa),
'𑢥' => Ok(WarangCiti::CapitalLetterYo),
'𑢦' => Ok(WarangCiti::CapitalLetterIi),
'𑢧' => Ok(WarangCiti::CapitalLetterUu),
'𑢨' => Ok(WarangCiti::CapitalLetterE),
'𑢩' => Ok(WarangCiti::CapitalLetterO),
'𑢪' => Ok(WarangCiti::CapitalLetterAng),
'𑢫' => Ok(WarangCiti::CapitalLetterGa),
'𑢬' => Ok(WarangCiti::CapitalLetterKo),
'𑢭' => Ok(WarangCiti::CapitalLetterEny),
'𑢮' => Ok(WarangCiti::CapitalLetterYuj),
'𑢯' => Ok(WarangCiti::CapitalLetterUc),
'𑢰' => Ok(WarangCiti::CapitalLetterEnn),
'𑢱' => Ok(WarangCiti::CapitalLetterOdd),
'𑢲' => Ok(WarangCiti::CapitalLetterTte),
'𑢳' => Ok(WarangCiti::CapitalLetterNung),
'𑢴' => Ok(WarangCiti::CapitalLetterDa),
'𑢵' => Ok(WarangCiti::CapitalLetterAt),
'𑢶' => Ok(WarangCiti::CapitalLetterAm),
'𑢷' => Ok(WarangCiti::CapitalLetterBu),
'𑢸' => Ok(WarangCiti::CapitalLetterPu),
'𑢹' => Ok(WarangCiti::CapitalLetterHiyo),
'𑢺' => Ok(WarangCiti::CapitalLetterHolo),
'𑢻' => Ok(WarangCiti::CapitalLetterHorr),
'𑢼' => Ok(WarangCiti::CapitalLetterHar),
'𑢽' => Ok(WarangCiti::CapitalLetterSsuu),
'𑢾' => Ok(WarangCiti::CapitalLetterSii),
'𑢿' => Ok(WarangCiti::CapitalLetterViyo),
'𑣀' => Ok(WarangCiti::SmallLetterNgaa),
'𑣁' => Ok(WarangCiti::SmallLetterA),
'𑣂' => Ok(WarangCiti::SmallLetterWi),
'𑣃' => Ok(WarangCiti::SmallLetterYu),
'𑣄' => Ok(WarangCiti::SmallLetterYa),
'𑣅' => Ok(WarangCiti::SmallLetterYo),
'𑣆' => Ok(WarangCiti::SmallLetterIi),
'𑣇' => Ok(WarangCiti::SmallLetterUu),
'𑣈' => Ok(WarangCiti::SmallLetterE),
'𑣉' => Ok(WarangCiti::SmallLetterO),
'𑣊' => Ok(WarangCiti::SmallLetterAng),
'𑣋' => Ok(WarangCiti::SmallLetterGa),
'𑣌' => Ok(WarangCiti::SmallLetterKo),
'𑣍' => Ok(WarangCiti::SmallLetterEny),
'𑣎' => Ok(WarangCiti::SmallLetterYuj),
'𑣏' => Ok(WarangCiti::SmallLetterUc),
'𑣐' => Ok(WarangCiti::SmallLetterEnn),
'𑣑' => Ok(WarangCiti::SmallLetterOdd),
'𑣒' => Ok(WarangCiti::SmallLetterTte),
'𑣓' => Ok(WarangCiti::SmallLetterNung),
'𑣔' => Ok(WarangCiti::SmallLetterDa),
'𑣕' => Ok(WarangCiti::SmallLetterAt),
'𑣖' => Ok(WarangCiti::SmallLetterAm),
'𑣗' => Ok(WarangCiti::SmallLetterBu),
'𑣘' => Ok(WarangCiti::SmallLetterPu),
'𑣙' => Ok(WarangCiti::SmallLetterHiyo),
'𑣚' => Ok(WarangCiti::SmallLetterHolo),
'𑣛' => Ok(WarangCiti::SmallLetterHorr),
'𑣜' => Ok(WarangCiti::SmallLetterHar),
'𑣝' => Ok(WarangCiti::SmallLetterSsuu),
'𑣞' => Ok(WarangCiti::SmallLetterSii),
'𑣟' => Ok(WarangCiti::SmallLetterViyo),
'𑣠' => Ok(WarangCiti::DigitZero),
'𑣡' => Ok(WarangCiti::DigitOne),
'𑣢' => Ok(WarangCiti::DigitTwo),
'𑣣' => Ok(WarangCiti::DigitThree),
'𑣤' => Ok(WarangCiti::DigitFour),
'𑣥' => Ok(WarangCiti::DigitFive),
'𑣦' => Ok(WarangCiti::DigitSix),
'𑣧' => Ok(WarangCiti::DigitSeven),
'𑣨' => Ok(WarangCiti::DigitEight),
'𑣩' => Ok(WarangCiti::DigitNine),
'𑣪' => Ok(WarangCiti::NumberTen),
'𑣫' => Ok(WarangCiti::NumberTwenty),
'𑣬' => Ok(WarangCiti::NumberThirty),
'𑣭' => Ok(WarangCiti::NumberForty),
'𑣮' => Ok(WarangCiti::NumberFifty),
'𑣯' => Ok(WarangCiti::NumberSixty),
'𑣰' => Ok(WarangCiti::NumberSeventy),
'𑣱' => Ok(WarangCiti::NumberEighty),
'𑣲' => Ok(WarangCiti::NumberNinety),
_ => Err(()),
}
}
}
impl Into<u32> for WarangCiti {
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 WarangCiti {
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 WarangCiti {
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 WarangCiti {
pub fn new() -> Self {
WarangCiti::CapitalLetterNgaa
}
pub fn name(&self) -> String {
let s = std::format!("WarangCiti{:#?}", self);
string_morph::to_sentence_case(&s)
}
}