#[derive(Debug, Clone, Copy, Hash, PartialEq, Eq)]
pub enum Medefaidrin {
CapitalLetterM,
CapitalLetterS,
CapitalLetterV,
CapitalLetterW,
CapitalLetterAtiu,
CapitalLetterZ,
CapitalLetterKp,
CapitalLetterP,
CapitalLetterT,
CapitalLetterG,
CapitalLetterF,
CapitalLetterI,
CapitalLetterK,
CapitalLetterA,
CapitalLetterJ,
CapitalLetterE,
CapitalLetterB,
CapitalLetterC,
CapitalLetterU,
CapitalLetterYu,
CapitalLetterL,
CapitalLetterQ,
CapitalLetterHp,
CapitalLetterNy,
CapitalLetterX,
CapitalLetterD,
CapitalLetterOe,
CapitalLetterN,
CapitalLetterR,
CapitalLetterO,
CapitalLetterAi,
CapitalLetterY,
SmallLetterM,
SmallLetterS,
SmallLetterV,
SmallLetterW,
SmallLetterAtiu,
SmallLetterZ,
SmallLetterKp,
SmallLetterP,
SmallLetterT,
SmallLetterG,
SmallLetterF,
SmallLetterI,
SmallLetterK,
SmallLetterA,
SmallLetterJ,
SmallLetterE,
SmallLetterB,
SmallLetterC,
SmallLetterU,
SmallLetterYu,
SmallLetterL,
SmallLetterQ,
SmallLetterHp,
SmallLetterNy,
SmallLetterX,
SmallLetterD,
SmallLetterOe,
SmallLetterN,
SmallLetterR,
SmallLetterO,
SmallLetterAi,
SmallLetterY,
DigitZero,
DigitOne,
DigitTwo,
DigitThree,
DigitFour,
DigitFive,
DigitSix,
DigitSeven,
DigitEight,
DigitNine,
NumberTen,
NumberEleven,
NumberTwelve,
NumberThirteen,
NumberFourteen,
NumberFifteen,
NumberSixteen,
NumberSeventeen,
NumberEighteen,
NumberNineteen,
DigitOneAlternateForm,
DigitTwoAlternateForm,
DigitThreeAlternateForm,
Comma,
FullStop,
SymbolAiva,
ExclamationOh,
}
impl Into<char> for Medefaidrin {
fn into(self) -> char {
match self {
Medefaidrin::CapitalLetterM => '๐น',
Medefaidrin::CapitalLetterS => '๐น',
Medefaidrin::CapitalLetterV => '๐น',
Medefaidrin::CapitalLetterW => '๐น',
Medefaidrin::CapitalLetterAtiu => '๐น',
Medefaidrin::CapitalLetterZ => '๐น
',
Medefaidrin::CapitalLetterKp => '๐น',
Medefaidrin::CapitalLetterP => '๐น',
Medefaidrin::CapitalLetterT => '๐น',
Medefaidrin::CapitalLetterG => '๐น',
Medefaidrin::CapitalLetterF => '๐น',
Medefaidrin::CapitalLetterI => '๐น',
Medefaidrin::CapitalLetterK => '๐น',
Medefaidrin::CapitalLetterA => '๐น',
Medefaidrin::CapitalLetterJ => '๐น',
Medefaidrin::CapitalLetterE => '๐น',
Medefaidrin::CapitalLetterB => '๐น',
Medefaidrin::CapitalLetterC => '๐น',
Medefaidrin::CapitalLetterU => '๐น',
Medefaidrin::CapitalLetterYu => '๐น',
Medefaidrin::CapitalLetterL => '๐น',
Medefaidrin::CapitalLetterQ => '๐น',
Medefaidrin::CapitalLetterHp => '๐น',
Medefaidrin::CapitalLetterNy => '๐น',
Medefaidrin::CapitalLetterX => '๐น',
Medefaidrin::CapitalLetterD => '๐น',
Medefaidrin::CapitalLetterOe => '๐น',
Medefaidrin::CapitalLetterN => '๐น',
Medefaidrin::CapitalLetterR => '๐น',
Medefaidrin::CapitalLetterO => '๐น',
Medefaidrin::CapitalLetterAi => '๐น',
Medefaidrin::CapitalLetterY => '๐น',
Medefaidrin::SmallLetterM => '๐น ',
Medefaidrin::SmallLetterS => '๐นก',
Medefaidrin::SmallLetterV => '๐นข',
Medefaidrin::SmallLetterW => '๐นฃ',
Medefaidrin::SmallLetterAtiu => '๐นค',
Medefaidrin::SmallLetterZ => '๐นฅ',
Medefaidrin::SmallLetterKp => '๐นฆ',
Medefaidrin::SmallLetterP => '๐นง',
Medefaidrin::SmallLetterT => '๐นจ',
Medefaidrin::SmallLetterG => '๐นฉ',
Medefaidrin::SmallLetterF => '๐นช',
Medefaidrin::SmallLetterI => '๐นซ',
Medefaidrin::SmallLetterK => '๐นฌ',
Medefaidrin::SmallLetterA => '๐นญ',
Medefaidrin::SmallLetterJ => '๐นฎ',
Medefaidrin::SmallLetterE => '๐นฏ',
Medefaidrin::SmallLetterB => '๐นฐ',
Medefaidrin::SmallLetterC => '๐นฑ',
Medefaidrin::SmallLetterU => '๐นฒ',
Medefaidrin::SmallLetterYu => '๐นณ',
Medefaidrin::SmallLetterL => '๐นด',
Medefaidrin::SmallLetterQ => '๐นต',
Medefaidrin::SmallLetterHp => '๐นถ',
Medefaidrin::SmallLetterNy => '๐นท',
Medefaidrin::SmallLetterX => '๐นธ',
Medefaidrin::SmallLetterD => '๐นน',
Medefaidrin::SmallLetterOe => '๐นบ',
Medefaidrin::SmallLetterN => '๐นป',
Medefaidrin::SmallLetterR => '๐นผ',
Medefaidrin::SmallLetterO => '๐นฝ',
Medefaidrin::SmallLetterAi => '๐นพ',
Medefaidrin::SmallLetterY => '๐นฟ',
Medefaidrin::DigitZero => '๐บ',
Medefaidrin::DigitOne => '๐บ',
Medefaidrin::DigitTwo => '๐บ',
Medefaidrin::DigitThree => '๐บ',
Medefaidrin::DigitFour => '๐บ',
Medefaidrin::DigitFive => '๐บ
',
Medefaidrin::DigitSix => '๐บ',
Medefaidrin::DigitSeven => '๐บ',
Medefaidrin::DigitEight => '๐บ',
Medefaidrin::DigitNine => '๐บ',
Medefaidrin::NumberTen => '๐บ',
Medefaidrin::NumberEleven => '๐บ',
Medefaidrin::NumberTwelve => '๐บ',
Medefaidrin::NumberThirteen => '๐บ',
Medefaidrin::NumberFourteen => '๐บ',
Medefaidrin::NumberFifteen => '๐บ',
Medefaidrin::NumberSixteen => '๐บ',
Medefaidrin::NumberSeventeen => '๐บ',
Medefaidrin::NumberEighteen => '๐บ',
Medefaidrin::NumberNineteen => '๐บ',
Medefaidrin::DigitOneAlternateForm => '๐บ',
Medefaidrin::DigitTwoAlternateForm => '๐บ',
Medefaidrin::DigitThreeAlternateForm => '๐บ',
Medefaidrin::Comma => '๐บ',
Medefaidrin::FullStop => '๐บ',
Medefaidrin::SymbolAiva => '๐บ',
Medefaidrin::ExclamationOh => '๐บ',
}
}
}
impl std::convert::TryFrom<char> for Medefaidrin {
type Error = ();
fn try_from(c: char) -> Result<Self, Self::Error> {
match c {
'๐น' => Ok(Medefaidrin::CapitalLetterM),
'๐น' => Ok(Medefaidrin::CapitalLetterS),
'๐น' => Ok(Medefaidrin::CapitalLetterV),
'๐น' => Ok(Medefaidrin::CapitalLetterW),
'๐น' => Ok(Medefaidrin::CapitalLetterAtiu),
'๐น
' => Ok(Medefaidrin::CapitalLetterZ),
'๐น' => Ok(Medefaidrin::CapitalLetterKp),
'๐น' => Ok(Medefaidrin::CapitalLetterP),
'๐น' => Ok(Medefaidrin::CapitalLetterT),
'๐น' => Ok(Medefaidrin::CapitalLetterG),
'๐น' => Ok(Medefaidrin::CapitalLetterF),
'๐น' => Ok(Medefaidrin::CapitalLetterI),
'๐น' => Ok(Medefaidrin::CapitalLetterK),
'๐น' => Ok(Medefaidrin::CapitalLetterA),
'๐น' => Ok(Medefaidrin::CapitalLetterJ),
'๐น' => Ok(Medefaidrin::CapitalLetterE),
'๐น' => Ok(Medefaidrin::CapitalLetterB),
'๐น' => Ok(Medefaidrin::CapitalLetterC),
'๐น' => Ok(Medefaidrin::CapitalLetterU),
'๐น' => Ok(Medefaidrin::CapitalLetterYu),
'๐น' => Ok(Medefaidrin::CapitalLetterL),
'๐น' => Ok(Medefaidrin::CapitalLetterQ),
'๐น' => Ok(Medefaidrin::CapitalLetterHp),
'๐น' => Ok(Medefaidrin::CapitalLetterNy),
'๐น' => Ok(Medefaidrin::CapitalLetterX),
'๐น' => Ok(Medefaidrin::CapitalLetterD),
'๐น' => Ok(Medefaidrin::CapitalLetterOe),
'๐น' => Ok(Medefaidrin::CapitalLetterN),
'๐น' => Ok(Medefaidrin::CapitalLetterR),
'๐น' => Ok(Medefaidrin::CapitalLetterO),
'๐น' => Ok(Medefaidrin::CapitalLetterAi),
'๐น' => Ok(Medefaidrin::CapitalLetterY),
'๐น ' => Ok(Medefaidrin::SmallLetterM),
'๐นก' => Ok(Medefaidrin::SmallLetterS),
'๐นข' => Ok(Medefaidrin::SmallLetterV),
'๐นฃ' => Ok(Medefaidrin::SmallLetterW),
'๐นค' => Ok(Medefaidrin::SmallLetterAtiu),
'๐นฅ' => Ok(Medefaidrin::SmallLetterZ),
'๐นฆ' => Ok(Medefaidrin::SmallLetterKp),
'๐นง' => Ok(Medefaidrin::SmallLetterP),
'๐นจ' => Ok(Medefaidrin::SmallLetterT),
'๐นฉ' => Ok(Medefaidrin::SmallLetterG),
'๐นช' => Ok(Medefaidrin::SmallLetterF),
'๐นซ' => Ok(Medefaidrin::SmallLetterI),
'๐นฌ' => Ok(Medefaidrin::SmallLetterK),
'๐นญ' => Ok(Medefaidrin::SmallLetterA),
'๐นฎ' => Ok(Medefaidrin::SmallLetterJ),
'๐นฏ' => Ok(Medefaidrin::SmallLetterE),
'๐นฐ' => Ok(Medefaidrin::SmallLetterB),
'๐นฑ' => Ok(Medefaidrin::SmallLetterC),
'๐นฒ' => Ok(Medefaidrin::SmallLetterU),
'๐นณ' => Ok(Medefaidrin::SmallLetterYu),
'๐นด' => Ok(Medefaidrin::SmallLetterL),
'๐นต' => Ok(Medefaidrin::SmallLetterQ),
'๐นถ' => Ok(Medefaidrin::SmallLetterHp),
'๐นท' => Ok(Medefaidrin::SmallLetterNy),
'๐นธ' => Ok(Medefaidrin::SmallLetterX),
'๐นน' => Ok(Medefaidrin::SmallLetterD),
'๐นบ' => Ok(Medefaidrin::SmallLetterOe),
'๐นป' => Ok(Medefaidrin::SmallLetterN),
'๐นผ' => Ok(Medefaidrin::SmallLetterR),
'๐นฝ' => Ok(Medefaidrin::SmallLetterO),
'๐นพ' => Ok(Medefaidrin::SmallLetterAi),
'๐นฟ' => Ok(Medefaidrin::SmallLetterY),
'๐บ' => Ok(Medefaidrin::DigitZero),
'๐บ' => Ok(Medefaidrin::DigitOne),
'๐บ' => Ok(Medefaidrin::DigitTwo),
'๐บ' => Ok(Medefaidrin::DigitThree),
'๐บ' => Ok(Medefaidrin::DigitFour),
'๐บ
' => Ok(Medefaidrin::DigitFive),
'๐บ' => Ok(Medefaidrin::DigitSix),
'๐บ' => Ok(Medefaidrin::DigitSeven),
'๐บ' => Ok(Medefaidrin::DigitEight),
'๐บ' => Ok(Medefaidrin::DigitNine),
'๐บ' => Ok(Medefaidrin::NumberTen),
'๐บ' => Ok(Medefaidrin::NumberEleven),
'๐บ' => Ok(Medefaidrin::NumberTwelve),
'๐บ' => Ok(Medefaidrin::NumberThirteen),
'๐บ' => Ok(Medefaidrin::NumberFourteen),
'๐บ' => Ok(Medefaidrin::NumberFifteen),
'๐บ' => Ok(Medefaidrin::NumberSixteen),
'๐บ' => Ok(Medefaidrin::NumberSeventeen),
'๐บ' => Ok(Medefaidrin::NumberEighteen),
'๐บ' => Ok(Medefaidrin::NumberNineteen),
'๐บ' => Ok(Medefaidrin::DigitOneAlternateForm),
'๐บ' => Ok(Medefaidrin::DigitTwoAlternateForm),
'๐บ' => Ok(Medefaidrin::DigitThreeAlternateForm),
'๐บ' => Ok(Medefaidrin::Comma),
'๐บ' => Ok(Medefaidrin::FullStop),
'๐บ' => Ok(Medefaidrin::SymbolAiva),
'๐บ' => Ok(Medefaidrin::ExclamationOh),
_ => Err(()),
}
}
}
impl Into<u32> for Medefaidrin {
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 Medefaidrin {
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 Medefaidrin {
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 Medefaidrin {
pub fn new() -> Self {
Medefaidrin::CapitalLetterM
}
pub fn name(&self) -> String {
let s = std::format!("Medefaidrin{:#?}", self);
string_morph::to_sentence_case(&s)
}
}