#[derive(Debug, Clone, Copy, Hash, PartialEq, Eq)]
pub enum PahawhHmong {
VowelKeeb,
VowelKeev,
VowelKib,
VowelKiv,
VowelKaub,
VowelKauv,
VowelKub,
VowelKuv,
VowelKeb,
VowelKev,
VowelKaib,
VowelKaiv,
VowelKoob,
VowelKoov,
VowelKawb,
VowelKawv,
VowelKuab,
VowelKuav,
VowelKob,
VowelKov,
VowelKiab,
VowelKiav,
VowelKab,
VowelKav,
VowelKwb,
VowelKwv,
VowelKaab,
VowelKaav,
ConsonantVau,
ConsonantNtsau,
ConsonantLau,
ConsonantHau,
ConsonantNlau,
ConsonantRau,
ConsonantNkau,
ConsonantQhau,
ConsonantYau,
ConsonantHlau,
ConsonantMau,
ConsonantChau,
ConsonantNchau,
ConsonantHnau,
ConsonantPlhau,
ConsonantNthau,
ConsonantNau,
ConsonantAu,
ConsonantXau,
ConsonantCau,
MarkCimTub,
MarkCimSo,
MarkCimKes,
MarkCimKhav,
MarkCimSuam,
MarkCimHom,
MarkCimTaum,
SignVosThom,
SignVosTshabCeeb,
SignCimCheem,
SignVosThiab,
SignVosFeem,
SignXyeemNtxiv,
SignXyeemRho,
SignXyeemTov,
SignXyeemFaib,
SignVosSeev,
SignMeejSuab,
SignVosNrua,
SignIbYam,
SignXaus,
SignCimTsovRog,
DigitZero,
DigitOne,
DigitTwo,
DigitThree,
DigitFour,
DigitFive,
DigitSix,
DigitSeven,
DigitEight,
DigitNine,
NumberTens,
NumberHundreds,
NumberTenThousands,
NumberMillions,
NumberHundredMillions,
NumberTenBillions,
NumberTrillions,
SignVosLub,
SignXyoo,
SignHli,
SignThirdDashStageHli,
SignZwjThaj,
SignHnub,
SignNqig,
SignXiab,
SignNtuj,
SignAv,
SignTxheejCeev,
SignMeejTseeb,
SignTau,
SignLos,
SignMus,
SignCimHaisLusNtogNtog,
SignCimCuamTshooj,
SignCimTxwv,
SignCimTxwvChwv,
SignCimPubDawb,
SignCimNresTos,
ClanSignTsheej,
ClanSignYeeg,
ClanSignLis,
ClanSignLauj,
ClanSignXyooj,
ClanSignKoo,
ClanSignHawj,
ClanSignMuas,
ClanSignThoj,
ClanSignTsab,
ClanSignPhab,
ClanSignKhab,
ClanSignHam,
ClanSignVaj,
ClanSignFaj,
ClanSignYaj,
ClanSignTswb,
ClanSignKwm,
}
impl Into<char> for PahawhHmong {
fn into(self) -> char {
match self {
PahawhHmong::VowelKeeb => '𖬀',
PahawhHmong::VowelKeev => '𖬁',
PahawhHmong::VowelKib => '𖬂',
PahawhHmong::VowelKiv => '𖬃',
PahawhHmong::VowelKaub => '𖬄',
PahawhHmong::VowelKauv => '𖬅',
PahawhHmong::VowelKub => '𖬆',
PahawhHmong::VowelKuv => '𖬇',
PahawhHmong::VowelKeb => '𖬈',
PahawhHmong::VowelKev => '𖬉',
PahawhHmong::VowelKaib => '𖬊',
PahawhHmong::VowelKaiv => '𖬋',
PahawhHmong::VowelKoob => '𖬌',
PahawhHmong::VowelKoov => '𖬍',
PahawhHmong::VowelKawb => '𖬎',
PahawhHmong::VowelKawv => '𖬏',
PahawhHmong::VowelKuab => '𖬐',
PahawhHmong::VowelKuav => '𖬑',
PahawhHmong::VowelKob => '𖬒',
PahawhHmong::VowelKov => '𖬓',
PahawhHmong::VowelKiab => '𖬔',
PahawhHmong::VowelKiav => '𖬕',
PahawhHmong::VowelKab => '𖬖',
PahawhHmong::VowelKav => '𖬗',
PahawhHmong::VowelKwb => '𖬘',
PahawhHmong::VowelKwv => '𖬙',
PahawhHmong::VowelKaab => '𖬚',
PahawhHmong::VowelKaav => '𖬛',
PahawhHmong::ConsonantVau => '𖬜',
PahawhHmong::ConsonantNtsau => '𖬝',
PahawhHmong::ConsonantLau => '𖬞',
PahawhHmong::ConsonantHau => '𖬟',
PahawhHmong::ConsonantNlau => '𖬠',
PahawhHmong::ConsonantRau => '𖬡',
PahawhHmong::ConsonantNkau => '𖬢',
PahawhHmong::ConsonantQhau => '𖬣',
PahawhHmong::ConsonantYau => '𖬤',
PahawhHmong::ConsonantHlau => '𖬥',
PahawhHmong::ConsonantMau => '𖬦',
PahawhHmong::ConsonantChau => '𖬧',
PahawhHmong::ConsonantNchau => '𖬨',
PahawhHmong::ConsonantHnau => '𖬩',
PahawhHmong::ConsonantPlhau => '𖬪',
PahawhHmong::ConsonantNthau => '𖬫',
PahawhHmong::ConsonantNau => '𖬬',
PahawhHmong::ConsonantAu => '𖬭',
PahawhHmong::ConsonantXau => '𖬮',
PahawhHmong::ConsonantCau => '𖬯',
PahawhHmong::MarkCimTub => '𖬰',
PahawhHmong::MarkCimSo => '𖬱',
PahawhHmong::MarkCimKes => '𖬲',
PahawhHmong::MarkCimKhav => '𖬳',
PahawhHmong::MarkCimSuam => '𖬴',
PahawhHmong::MarkCimHom => '𖬵',
PahawhHmong::MarkCimTaum => '𖬶',
PahawhHmong::SignVosThom => '𖬷',
PahawhHmong::SignVosTshabCeeb => '𖬸',
PahawhHmong::SignCimCheem => '𖬹',
PahawhHmong::SignVosThiab => '𖬺',
PahawhHmong::SignVosFeem => '𖬻',
PahawhHmong::SignXyeemNtxiv => '𖬼',
PahawhHmong::SignXyeemRho => '𖬽',
PahawhHmong::SignXyeemTov => '𖬾',
PahawhHmong::SignXyeemFaib => '𖬿',
PahawhHmong::SignVosSeev => '𖭀',
PahawhHmong::SignMeejSuab => '𖭁',
PahawhHmong::SignVosNrua => '𖭂',
PahawhHmong::SignIbYam => '𖭃',
PahawhHmong::SignXaus => '𖭄',
PahawhHmong::SignCimTsovRog => '𖭅',
PahawhHmong::DigitZero => '𖭐',
PahawhHmong::DigitOne => '𖭑',
PahawhHmong::DigitTwo => '𖭒',
PahawhHmong::DigitThree => '𖭓',
PahawhHmong::DigitFour => '𖭔',
PahawhHmong::DigitFive => '𖭕',
PahawhHmong::DigitSix => '𖭖',
PahawhHmong::DigitSeven => '𖭗',
PahawhHmong::DigitEight => '𖭘',
PahawhHmong::DigitNine => '𖭙',
PahawhHmong::NumberTens => '𖭛',
PahawhHmong::NumberHundreds => '𖭜',
PahawhHmong::NumberTenThousands => '𖭝',
PahawhHmong::NumberMillions => '𖭞',
PahawhHmong::NumberHundredMillions => '𖭟',
PahawhHmong::NumberTenBillions => '𖭠',
PahawhHmong::NumberTrillions => '𖭡',
PahawhHmong::SignVosLub => '𖭣',
PahawhHmong::SignXyoo => '𖭤',
PahawhHmong::SignHli => '𖭥',
PahawhHmong::SignThirdDashStageHli => '𖭦',
PahawhHmong::SignZwjThaj => '𖭧',
PahawhHmong::SignHnub => '𖭨',
PahawhHmong::SignNqig => '𖭩',
PahawhHmong::SignXiab => '𖭪',
PahawhHmong::SignNtuj => '𖭫',
PahawhHmong::SignAv => '𖭬',
PahawhHmong::SignTxheejCeev => '𖭭',
PahawhHmong::SignMeejTseeb => '𖭮',
PahawhHmong::SignTau => '𖭯',
PahawhHmong::SignLos => '𖭰',
PahawhHmong::SignMus => '𖭱',
PahawhHmong::SignCimHaisLusNtogNtog => '𖭲',
PahawhHmong::SignCimCuamTshooj => '𖭳',
PahawhHmong::SignCimTxwv => '𖭴',
PahawhHmong::SignCimTxwvChwv => '𖭵',
PahawhHmong::SignCimPubDawb => '𖭶',
PahawhHmong::SignCimNresTos => '𖭷',
PahawhHmong::ClanSignTsheej => '𖭽',
PahawhHmong::ClanSignYeeg => '𖭾',
PahawhHmong::ClanSignLis => '𖭿',
PahawhHmong::ClanSignLauj => '𖮀',
PahawhHmong::ClanSignXyooj => '𖮁',
PahawhHmong::ClanSignKoo => '𖮂',
PahawhHmong::ClanSignHawj => '𖮃',
PahawhHmong::ClanSignMuas => '𖮄',
PahawhHmong::ClanSignThoj => '𖮅',
PahawhHmong::ClanSignTsab => '𖮆',
PahawhHmong::ClanSignPhab => '𖮇',
PahawhHmong::ClanSignKhab => '𖮈',
PahawhHmong::ClanSignHam => '𖮉',
PahawhHmong::ClanSignVaj => '𖮊',
PahawhHmong::ClanSignFaj => '𖮋',
PahawhHmong::ClanSignYaj => '𖮌',
PahawhHmong::ClanSignTswb => '𖮍',
PahawhHmong::ClanSignKwm => '𖮎',
}
}
}
impl std::convert::TryFrom<char> for PahawhHmong {
type Error = ();
fn try_from(c: char) -> Result<Self, Self::Error> {
match c {
'𖬀' => Ok(PahawhHmong::VowelKeeb),
'𖬁' => Ok(PahawhHmong::VowelKeev),
'𖬂' => Ok(PahawhHmong::VowelKib),
'𖬃' => Ok(PahawhHmong::VowelKiv),
'𖬄' => Ok(PahawhHmong::VowelKaub),
'𖬅' => Ok(PahawhHmong::VowelKauv),
'𖬆' => Ok(PahawhHmong::VowelKub),
'𖬇' => Ok(PahawhHmong::VowelKuv),
'𖬈' => Ok(PahawhHmong::VowelKeb),
'𖬉' => Ok(PahawhHmong::VowelKev),
'𖬊' => Ok(PahawhHmong::VowelKaib),
'𖬋' => Ok(PahawhHmong::VowelKaiv),
'𖬌' => Ok(PahawhHmong::VowelKoob),
'𖬍' => Ok(PahawhHmong::VowelKoov),
'𖬎' => Ok(PahawhHmong::VowelKawb),
'𖬏' => Ok(PahawhHmong::VowelKawv),
'𖬐' => Ok(PahawhHmong::VowelKuab),
'𖬑' => Ok(PahawhHmong::VowelKuav),
'𖬒' => Ok(PahawhHmong::VowelKob),
'𖬓' => Ok(PahawhHmong::VowelKov),
'𖬔' => Ok(PahawhHmong::VowelKiab),
'𖬕' => Ok(PahawhHmong::VowelKiav),
'𖬖' => Ok(PahawhHmong::VowelKab),
'𖬗' => Ok(PahawhHmong::VowelKav),
'𖬘' => Ok(PahawhHmong::VowelKwb),
'𖬙' => Ok(PahawhHmong::VowelKwv),
'𖬚' => Ok(PahawhHmong::VowelKaab),
'𖬛' => Ok(PahawhHmong::VowelKaav),
'𖬜' => Ok(PahawhHmong::ConsonantVau),
'𖬝' => Ok(PahawhHmong::ConsonantNtsau),
'𖬞' => Ok(PahawhHmong::ConsonantLau),
'𖬟' => Ok(PahawhHmong::ConsonantHau),
'𖬠' => Ok(PahawhHmong::ConsonantNlau),
'𖬡' => Ok(PahawhHmong::ConsonantRau),
'𖬢' => Ok(PahawhHmong::ConsonantNkau),
'𖬣' => Ok(PahawhHmong::ConsonantQhau),
'𖬤' => Ok(PahawhHmong::ConsonantYau),
'𖬥' => Ok(PahawhHmong::ConsonantHlau),
'𖬦' => Ok(PahawhHmong::ConsonantMau),
'𖬧' => Ok(PahawhHmong::ConsonantChau),
'𖬨' => Ok(PahawhHmong::ConsonantNchau),
'𖬩' => Ok(PahawhHmong::ConsonantHnau),
'𖬪' => Ok(PahawhHmong::ConsonantPlhau),
'𖬫' => Ok(PahawhHmong::ConsonantNthau),
'𖬬' => Ok(PahawhHmong::ConsonantNau),
'𖬭' => Ok(PahawhHmong::ConsonantAu),
'𖬮' => Ok(PahawhHmong::ConsonantXau),
'𖬯' => Ok(PahawhHmong::ConsonantCau),
'𖬰' => Ok(PahawhHmong::MarkCimTub),
'𖬱' => Ok(PahawhHmong::MarkCimSo),
'𖬲' => Ok(PahawhHmong::MarkCimKes),
'𖬳' => Ok(PahawhHmong::MarkCimKhav),
'𖬴' => Ok(PahawhHmong::MarkCimSuam),
'𖬵' => Ok(PahawhHmong::MarkCimHom),
'𖬶' => Ok(PahawhHmong::MarkCimTaum),
'𖬷' => Ok(PahawhHmong::SignVosThom),
'𖬸' => Ok(PahawhHmong::SignVosTshabCeeb),
'𖬹' => Ok(PahawhHmong::SignCimCheem),
'𖬺' => Ok(PahawhHmong::SignVosThiab),
'𖬻' => Ok(PahawhHmong::SignVosFeem),
'𖬼' => Ok(PahawhHmong::SignXyeemNtxiv),
'𖬽' => Ok(PahawhHmong::SignXyeemRho),
'𖬾' => Ok(PahawhHmong::SignXyeemTov),
'𖬿' => Ok(PahawhHmong::SignXyeemFaib),
'𖭀' => Ok(PahawhHmong::SignVosSeev),
'𖭁' => Ok(PahawhHmong::SignMeejSuab),
'𖭂' => Ok(PahawhHmong::SignVosNrua),
'𖭃' => Ok(PahawhHmong::SignIbYam),
'𖭄' => Ok(PahawhHmong::SignXaus),
'𖭅' => Ok(PahawhHmong::SignCimTsovRog),
'𖭐' => Ok(PahawhHmong::DigitZero),
'𖭑' => Ok(PahawhHmong::DigitOne),
'𖭒' => Ok(PahawhHmong::DigitTwo),
'𖭓' => Ok(PahawhHmong::DigitThree),
'𖭔' => Ok(PahawhHmong::DigitFour),
'𖭕' => Ok(PahawhHmong::DigitFive),
'𖭖' => Ok(PahawhHmong::DigitSix),
'𖭗' => Ok(PahawhHmong::DigitSeven),
'𖭘' => Ok(PahawhHmong::DigitEight),
'𖭙' => Ok(PahawhHmong::DigitNine),
'𖭛' => Ok(PahawhHmong::NumberTens),
'𖭜' => Ok(PahawhHmong::NumberHundreds),
'𖭝' => Ok(PahawhHmong::NumberTenThousands),
'𖭞' => Ok(PahawhHmong::NumberMillions),
'𖭟' => Ok(PahawhHmong::NumberHundredMillions),
'𖭠' => Ok(PahawhHmong::NumberTenBillions),
'𖭡' => Ok(PahawhHmong::NumberTrillions),
'𖭣' => Ok(PahawhHmong::SignVosLub),
'𖭤' => Ok(PahawhHmong::SignXyoo),
'𖭥' => Ok(PahawhHmong::SignHli),
'𖭦' => Ok(PahawhHmong::SignThirdDashStageHli),
'𖭧' => Ok(PahawhHmong::SignZwjThaj),
'𖭨' => Ok(PahawhHmong::SignHnub),
'𖭩' => Ok(PahawhHmong::SignNqig),
'𖭪' => Ok(PahawhHmong::SignXiab),
'𖭫' => Ok(PahawhHmong::SignNtuj),
'𖭬' => Ok(PahawhHmong::SignAv),
'𖭭' => Ok(PahawhHmong::SignTxheejCeev),
'𖭮' => Ok(PahawhHmong::SignMeejTseeb),
'𖭯' => Ok(PahawhHmong::SignTau),
'𖭰' => Ok(PahawhHmong::SignLos),
'𖭱' => Ok(PahawhHmong::SignMus),
'𖭲' => Ok(PahawhHmong::SignCimHaisLusNtogNtog),
'𖭳' => Ok(PahawhHmong::SignCimCuamTshooj),
'𖭴' => Ok(PahawhHmong::SignCimTxwv),
'𖭵' => Ok(PahawhHmong::SignCimTxwvChwv),
'𖭶' => Ok(PahawhHmong::SignCimPubDawb),
'𖭷' => Ok(PahawhHmong::SignCimNresTos),
'𖭽' => Ok(PahawhHmong::ClanSignTsheej),
'𖭾' => Ok(PahawhHmong::ClanSignYeeg),
'𖭿' => Ok(PahawhHmong::ClanSignLis),
'𖮀' => Ok(PahawhHmong::ClanSignLauj),
'𖮁' => Ok(PahawhHmong::ClanSignXyooj),
'𖮂' => Ok(PahawhHmong::ClanSignKoo),
'𖮃' => Ok(PahawhHmong::ClanSignHawj),
'𖮄' => Ok(PahawhHmong::ClanSignMuas),
'𖮅' => Ok(PahawhHmong::ClanSignThoj),
'𖮆' => Ok(PahawhHmong::ClanSignTsab),
'𖮇' => Ok(PahawhHmong::ClanSignPhab),
'𖮈' => Ok(PahawhHmong::ClanSignKhab),
'𖮉' => Ok(PahawhHmong::ClanSignHam),
'𖮊' => Ok(PahawhHmong::ClanSignVaj),
'𖮋' => Ok(PahawhHmong::ClanSignFaj),
'𖮌' => Ok(PahawhHmong::ClanSignYaj),
'𖮍' => Ok(PahawhHmong::ClanSignTswb),
'𖮎' => Ok(PahawhHmong::ClanSignKwm),
_ => Err(()),
}
}
}
impl Into<u32> for PahawhHmong {
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 PahawhHmong {
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 PahawhHmong {
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 PahawhHmong {
pub fn new() -> Self {
PahawhHmong::VowelKeeb
}
pub fn name(&self) -> String {
let s = std::format!("PahawhHmong{:#?}", self);
string_morph::to_sentence_case(&s)
}
}