#[derive(Debug, Clone, Copy, Hash, PartialEq, Eq)]
pub enum MasaramGondi {
LetterA,
LetterAa,
LetterI,
LetterIi,
LetterU,
LetterUu,
LetterE,
LetterAi,
LetterO,
LetterAu,
LetterKa,
LetterKha,
LetterGa,
LetterGha,
LetterNga,
LetterCa,
LetterCha,
LetterJa,
LetterJha,
LetterNya,
LetterTta,
LetterTtha,
LetterDda,
LetterDdha,
LetterNna,
LetterTa,
LetterTha,
LetterDa,
LetterDha,
LetterNa,
LetterPa,
LetterPha,
LetterBa,
LetterBha,
LetterMa,
LetterYa,
LetterRa,
LetterLa,
LetterVa,
LetterSha,
LetterSsa,
LetterSa,
LetterHa,
LetterLla,
LetterKssa,
LetterJnya,
LetterTra,
VowelSignAa,
VowelSignI,
VowelSignIi,
VowelSignU,
VowelSignUu,
VowelSignVocalicR,
VowelSignE,
VowelSignAi,
VowelSignO,
VowelSignAu,
SignAnusvara,
SignVisarga,
SignNukta,
SignCandra,
SignHalanta,
Virama,
Repha,
RaDashKara,
DigitZero,
DigitOne,
DigitTwo,
DigitThree,
DigitFour,
DigitFive,
DigitSix,
DigitSeven,
DigitEight,
DigitNine,
}
impl Into<char> for MasaramGondi {
fn into(self) -> char {
match self {
MasaramGondi::LetterA => '𑴀',
MasaramGondi::LetterAa => '𑴁',
MasaramGondi::LetterI => '𑴂',
MasaramGondi::LetterIi => '𑴃',
MasaramGondi::LetterU => '𑴄',
MasaramGondi::LetterUu => '𑴅',
MasaramGondi::LetterE => '𑴆',
MasaramGondi::LetterAi => '𑴈',
MasaramGondi::LetterO => '𑴉',
MasaramGondi::LetterAu => '𑴋',
MasaramGondi::LetterKa => '𑴌',
MasaramGondi::LetterKha => '𑴍',
MasaramGondi::LetterGa => '𑴎',
MasaramGondi::LetterGha => '𑴏',
MasaramGondi::LetterNga => '𑴐',
MasaramGondi::LetterCa => '𑴑',
MasaramGondi::LetterCha => '𑴒',
MasaramGondi::LetterJa => '𑴓',
MasaramGondi::LetterJha => '𑴔',
MasaramGondi::LetterNya => '𑴕',
MasaramGondi::LetterTta => '𑴖',
MasaramGondi::LetterTtha => '𑴗',
MasaramGondi::LetterDda => '𑴘',
MasaramGondi::LetterDdha => '𑴙',
MasaramGondi::LetterNna => '𑴚',
MasaramGondi::LetterTa => '𑴛',
MasaramGondi::LetterTha => '𑴜',
MasaramGondi::LetterDa => '𑴝',
MasaramGondi::LetterDha => '𑴞',
MasaramGondi::LetterNa => '𑴟',
MasaramGondi::LetterPa => '𑴠',
MasaramGondi::LetterPha => '𑴡',
MasaramGondi::LetterBa => '𑴢',
MasaramGondi::LetterBha => '𑴣',
MasaramGondi::LetterMa => '𑴤',
MasaramGondi::LetterYa => '𑴥',
MasaramGondi::LetterRa => '𑴦',
MasaramGondi::LetterLa => '𑴧',
MasaramGondi::LetterVa => '𑴨',
MasaramGondi::LetterSha => '𑴩',
MasaramGondi::LetterSsa => '𑴪',
MasaramGondi::LetterSa => '𑴫',
MasaramGondi::LetterHa => '𑴬',
MasaramGondi::LetterLla => '𑴭',
MasaramGondi::LetterKssa => '𑴮',
MasaramGondi::LetterJnya => '𑴯',
MasaramGondi::LetterTra => '𑴰',
MasaramGondi::VowelSignAa => '𑴱',
MasaramGondi::VowelSignI => '𑴲',
MasaramGondi::VowelSignIi => '𑴳',
MasaramGondi::VowelSignU => '𑴴',
MasaramGondi::VowelSignUu => '𑴵',
MasaramGondi::VowelSignVocalicR => '𑴶',
MasaramGondi::VowelSignE => '𑴺',
MasaramGondi::VowelSignAi => '𑴼',
MasaramGondi::VowelSignO => '𑴽',
MasaramGondi::VowelSignAu => '𑴿',
MasaramGondi::SignAnusvara => '𑵀',
MasaramGondi::SignVisarga => '𑵁',
MasaramGondi::SignNukta => '𑵂',
MasaramGondi::SignCandra => '𑵃',
MasaramGondi::SignHalanta => '𑵄',
MasaramGondi::Virama => '𑵅',
MasaramGondi::Repha => '𑵆',
MasaramGondi::RaDashKara => '𑵇',
MasaramGondi::DigitZero => '𑵐',
MasaramGondi::DigitOne => '𑵑',
MasaramGondi::DigitTwo => '𑵒',
MasaramGondi::DigitThree => '𑵓',
MasaramGondi::DigitFour => '𑵔',
MasaramGondi::DigitFive => '𑵕',
MasaramGondi::DigitSix => '𑵖',
MasaramGondi::DigitSeven => '𑵗',
MasaramGondi::DigitEight => '𑵘',
MasaramGondi::DigitNine => '𑵙',
}
}
}
impl std::convert::TryFrom<char> for MasaramGondi {
type Error = ();
fn try_from(c: char) -> Result<Self, Self::Error> {
match c {
'𑴀' => Ok(MasaramGondi::LetterA),
'𑴁' => Ok(MasaramGondi::LetterAa),
'𑴂' => Ok(MasaramGondi::LetterI),
'𑴃' => Ok(MasaramGondi::LetterIi),
'𑴄' => Ok(MasaramGondi::LetterU),
'𑴅' => Ok(MasaramGondi::LetterUu),
'𑴆' => Ok(MasaramGondi::LetterE),
'𑴈' => Ok(MasaramGondi::LetterAi),
'𑴉' => Ok(MasaramGondi::LetterO),
'𑴋' => Ok(MasaramGondi::LetterAu),
'𑴌' => Ok(MasaramGondi::LetterKa),
'𑴍' => Ok(MasaramGondi::LetterKha),
'𑴎' => Ok(MasaramGondi::LetterGa),
'𑴏' => Ok(MasaramGondi::LetterGha),
'𑴐' => Ok(MasaramGondi::LetterNga),
'𑴑' => Ok(MasaramGondi::LetterCa),
'𑴒' => Ok(MasaramGondi::LetterCha),
'𑴓' => Ok(MasaramGondi::LetterJa),
'𑴔' => Ok(MasaramGondi::LetterJha),
'𑴕' => Ok(MasaramGondi::LetterNya),
'𑴖' => Ok(MasaramGondi::LetterTta),
'𑴗' => Ok(MasaramGondi::LetterTtha),
'𑴘' => Ok(MasaramGondi::LetterDda),
'𑴙' => Ok(MasaramGondi::LetterDdha),
'𑴚' => Ok(MasaramGondi::LetterNna),
'𑴛' => Ok(MasaramGondi::LetterTa),
'𑴜' => Ok(MasaramGondi::LetterTha),
'𑴝' => Ok(MasaramGondi::LetterDa),
'𑴞' => Ok(MasaramGondi::LetterDha),
'𑴟' => Ok(MasaramGondi::LetterNa),
'𑴠' => Ok(MasaramGondi::LetterPa),
'𑴡' => Ok(MasaramGondi::LetterPha),
'𑴢' => Ok(MasaramGondi::LetterBa),
'𑴣' => Ok(MasaramGondi::LetterBha),
'𑴤' => Ok(MasaramGondi::LetterMa),
'𑴥' => Ok(MasaramGondi::LetterYa),
'𑴦' => Ok(MasaramGondi::LetterRa),
'𑴧' => Ok(MasaramGondi::LetterLa),
'𑴨' => Ok(MasaramGondi::LetterVa),
'𑴩' => Ok(MasaramGondi::LetterSha),
'𑴪' => Ok(MasaramGondi::LetterSsa),
'𑴫' => Ok(MasaramGondi::LetterSa),
'𑴬' => Ok(MasaramGondi::LetterHa),
'𑴭' => Ok(MasaramGondi::LetterLla),
'𑴮' => Ok(MasaramGondi::LetterKssa),
'𑴯' => Ok(MasaramGondi::LetterJnya),
'𑴰' => Ok(MasaramGondi::LetterTra),
'𑴱' => Ok(MasaramGondi::VowelSignAa),
'𑴲' => Ok(MasaramGondi::VowelSignI),
'𑴳' => Ok(MasaramGondi::VowelSignIi),
'𑴴' => Ok(MasaramGondi::VowelSignU),
'𑴵' => Ok(MasaramGondi::VowelSignUu),
'𑴶' => Ok(MasaramGondi::VowelSignVocalicR),
'𑴺' => Ok(MasaramGondi::VowelSignE),
'𑴼' => Ok(MasaramGondi::VowelSignAi),
'𑴽' => Ok(MasaramGondi::VowelSignO),
'𑴿' => Ok(MasaramGondi::VowelSignAu),
'𑵀' => Ok(MasaramGondi::SignAnusvara),
'𑵁' => Ok(MasaramGondi::SignVisarga),
'𑵂' => Ok(MasaramGondi::SignNukta),
'𑵃' => Ok(MasaramGondi::SignCandra),
'𑵄' => Ok(MasaramGondi::SignHalanta),
'𑵅' => Ok(MasaramGondi::Virama),
'𑵆' => Ok(MasaramGondi::Repha),
'𑵇' => Ok(MasaramGondi::RaDashKara),
'𑵐' => Ok(MasaramGondi::DigitZero),
'𑵑' => Ok(MasaramGondi::DigitOne),
'𑵒' => Ok(MasaramGondi::DigitTwo),
'𑵓' => Ok(MasaramGondi::DigitThree),
'𑵔' => Ok(MasaramGondi::DigitFour),
'𑵕' => Ok(MasaramGondi::DigitFive),
'𑵖' => Ok(MasaramGondi::DigitSix),
'𑵗' => Ok(MasaramGondi::DigitSeven),
'𑵘' => Ok(MasaramGondi::DigitEight),
'𑵙' => Ok(MasaramGondi::DigitNine),
_ => Err(()),
}
}
}
impl Into<u32> for MasaramGondi {
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 MasaramGondi {
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 MasaramGondi {
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 MasaramGondi {
pub fn new() -> Self {
MasaramGondi::LetterA
}
pub fn name(&self) -> String {
let s = std::format!("MasaramGondi{:#?}", self);
string_morph::to_sentence_case(&s)
}
}