mod constants {
pub const LETTER_MA: char = '𞄀';
pub const LETTER_TSA: char = '𞄁';
pub const LETTER_NTA: char = '𞄂';
pub const LETTER_TA: char = '𞄃';
pub const LETTER_HA: char = '𞄄';
pub const LETTER_NA: char = '𞄅';
pub const LETTER_XA: char = '𞄆';
pub const LETTER_NKA: char = '𞄇';
pub const LETTER_CA: char = '𞄈';
pub const LETTER_LA: char = '𞄉';
pub const LETTER_SA: char = '𞄊';
pub const LETTER_ZA: char = '𞄋';
pub const LETTER_NCA: char = '𞄌';
pub const LETTER_NTSA: char = '𞄍';
pub const LETTER_KA: char = '𞄎';
pub const LETTER_DA: char = '𞄏';
pub const LETTER_NYA: char = '𞄐';
pub const LETTER_NRA: char = '𞄑';
pub const LETTER_VA: char = '𞄒';
pub const LETTER_NTXA: char = '𞄓';
pub const LETTER_TXA: char = '𞄔';
pub const LETTER_FA: char = '𞄕';
pub const LETTER_RA: char = '𞄖';
pub const LETTER_QA: char = '𞄗';
pub const LETTER_YA: char = '𞄘';
pub const LETTER_NQA: char = '𞄙';
pub const LETTER_PA: char = '𞄚';
pub const LETTER_XYA: char = '𞄛';
pub const LETTER_NPA: char = '𞄜';
pub const LETTER_DLA: char = '𞄝';
pub const LETTER_NPLA: char = '𞄞';
pub const LETTER_HAH: char = '𞄟';
pub const LETTER_MLA: char = '𞄠';
pub const LETTER_PLA: char = '𞄡';
pub const LETTER_GA: char = '𞄢';
pub const LETTER_RRA: char = '𞄣';
pub const LETTER_A: char = '𞄤';
pub const LETTER_AA: char = '𞄥';
pub const LETTER_I: char = '𞄦';
pub const LETTER_U: char = '𞄧';
pub const LETTER_O: char = '𞄨';
pub const LETTER_OO: char = '𞄩';
pub const LETTER_E: char = '𞄪';
pub const LETTER_EE: char = '𞄫';
pub const LETTER_W: char = '𞄬';
pub const TONE_DASH_B: char = '𞄰';
pub const TONE_DASH_M: char = '𞄱';
pub const TONE_DASH_J: char = '𞄲';
pub const TONE_DASH_V: char = '𞄳';
pub const TONE_DASH_S: char = '𞄴';
pub const TONE_DASH_G: char = '𞄵';
pub const TONE_DASH_D: char = '𞄶';
pub const SIGN_FOR_PERSON: char = '𞄷';
pub const SIGN_FOR_THING: char = '𞄸';
pub const SIGN_FOR_LOCATION: char = '𞄹';
pub const SIGN_FOR_ANIMAL: char = '𞄺';
pub const SIGN_FOR_INVERTEBRATE: char = '𞄻';
pub const SIGN_XW_XW: char = '𞄼';
pub const SYLLABLE_LENGTHENER: char = '𞄽';
pub const DIGIT_ZERO: char = '𞅀';
pub const DIGIT_ONE: char = '𞅁';
pub const DIGIT_TWO: char = '𞅂';
pub const DIGIT_THREE: char = '𞅃';
pub const DIGIT_FOUR: char = '𞅄';
pub const DIGIT_FIVE: char = '𞅅';
pub const DIGIT_SIX: char = '𞅆';
pub const DIGIT_SEVEN: char = '𞅇';
pub const DIGIT_EIGHT: char = '𞅈';
pub const DIGIT_NINE: char = '𞅉';
pub const LOGOGRAM_NYAJ: char = '𞅎';
}
#[derive(Debug, Clone, Copy, Hash, PartialEq, Eq)]
pub enum NyiakengPuachueHmong {
LetterMa,
LetterTsa,
LetterNta,
LetterTa,
LetterHa,
LetterNa,
LetterXa,
LetterNka,
LetterCa,
LetterLa,
LetterSa,
LetterZa,
LetterNca,
LetterNtsa,
LetterKa,
LetterDa,
LetterNya,
LetterNra,
LetterVa,
LetterNtxa,
LetterTxa,
LetterFa,
LetterRa,
LetterQa,
LetterYa,
LetterNqa,
LetterPa,
LetterXya,
LetterNpa,
LetterDla,
LetterNpla,
LetterHah,
LetterMla,
LetterPla,
LetterGa,
LetterRra,
LetterA,
LetterAa,
LetterI,
LetterU,
LetterO,
LetterOo,
LetterE,
LetterEe,
LetterW,
ToneDashB,
ToneDashM,
ToneDashJ,
ToneDashV,
ToneDashS,
ToneDashG,
ToneDashD,
SignForPerson,
SignForThing,
SignForLocation,
SignForAnimal,
SignForInvertebrate,
SignXwXw,
SyllableLengthener,
DigitZero,
DigitOne,
DigitTwo,
DigitThree,
DigitFour,
DigitFive,
DigitSix,
DigitSeven,
DigitEight,
DigitNine,
LogogramNyaj,
}
impl Into<char> for NyiakengPuachueHmong {
fn into(self) -> char {
use constants::*;
match self {
NyiakengPuachueHmong::LetterMa => LETTER_MA,
NyiakengPuachueHmong::LetterTsa => LETTER_TSA,
NyiakengPuachueHmong::LetterNta => LETTER_NTA,
NyiakengPuachueHmong::LetterTa => LETTER_TA,
NyiakengPuachueHmong::LetterHa => LETTER_HA,
NyiakengPuachueHmong::LetterNa => LETTER_NA,
NyiakengPuachueHmong::LetterXa => LETTER_XA,
NyiakengPuachueHmong::LetterNka => LETTER_NKA,
NyiakengPuachueHmong::LetterCa => LETTER_CA,
NyiakengPuachueHmong::LetterLa => LETTER_LA,
NyiakengPuachueHmong::LetterSa => LETTER_SA,
NyiakengPuachueHmong::LetterZa => LETTER_ZA,
NyiakengPuachueHmong::LetterNca => LETTER_NCA,
NyiakengPuachueHmong::LetterNtsa => LETTER_NTSA,
NyiakengPuachueHmong::LetterKa => LETTER_KA,
NyiakengPuachueHmong::LetterDa => LETTER_DA,
NyiakengPuachueHmong::LetterNya => LETTER_NYA,
NyiakengPuachueHmong::LetterNra => LETTER_NRA,
NyiakengPuachueHmong::LetterVa => LETTER_VA,
NyiakengPuachueHmong::LetterNtxa => LETTER_NTXA,
NyiakengPuachueHmong::LetterTxa => LETTER_TXA,
NyiakengPuachueHmong::LetterFa => LETTER_FA,
NyiakengPuachueHmong::LetterRa => LETTER_RA,
NyiakengPuachueHmong::LetterQa => LETTER_QA,
NyiakengPuachueHmong::LetterYa => LETTER_YA,
NyiakengPuachueHmong::LetterNqa => LETTER_NQA,
NyiakengPuachueHmong::LetterPa => LETTER_PA,
NyiakengPuachueHmong::LetterXya => LETTER_XYA,
NyiakengPuachueHmong::LetterNpa => LETTER_NPA,
NyiakengPuachueHmong::LetterDla => LETTER_DLA,
NyiakengPuachueHmong::LetterNpla => LETTER_NPLA,
NyiakengPuachueHmong::LetterHah => LETTER_HAH,
NyiakengPuachueHmong::LetterMla => LETTER_MLA,
NyiakengPuachueHmong::LetterPla => LETTER_PLA,
NyiakengPuachueHmong::LetterGa => LETTER_GA,
NyiakengPuachueHmong::LetterRra => LETTER_RRA,
NyiakengPuachueHmong::LetterA => LETTER_A,
NyiakengPuachueHmong::LetterAa => LETTER_AA,
NyiakengPuachueHmong::LetterI => LETTER_I,
NyiakengPuachueHmong::LetterU => LETTER_U,
NyiakengPuachueHmong::LetterO => LETTER_O,
NyiakengPuachueHmong::LetterOo => LETTER_OO,
NyiakengPuachueHmong::LetterE => LETTER_E,
NyiakengPuachueHmong::LetterEe => LETTER_EE,
NyiakengPuachueHmong::LetterW => LETTER_W,
NyiakengPuachueHmong::ToneDashB => TONE_DASH_B,
NyiakengPuachueHmong::ToneDashM => TONE_DASH_M,
NyiakengPuachueHmong::ToneDashJ => TONE_DASH_J,
NyiakengPuachueHmong::ToneDashV => TONE_DASH_V,
NyiakengPuachueHmong::ToneDashS => TONE_DASH_S,
NyiakengPuachueHmong::ToneDashG => TONE_DASH_G,
NyiakengPuachueHmong::ToneDashD => TONE_DASH_D,
NyiakengPuachueHmong::SignForPerson => SIGN_FOR_PERSON,
NyiakengPuachueHmong::SignForThing => SIGN_FOR_THING,
NyiakengPuachueHmong::SignForLocation => SIGN_FOR_LOCATION,
NyiakengPuachueHmong::SignForAnimal => SIGN_FOR_ANIMAL,
NyiakengPuachueHmong::SignForInvertebrate => SIGN_FOR_INVERTEBRATE,
NyiakengPuachueHmong::SignXwXw => SIGN_XW_XW,
NyiakengPuachueHmong::SyllableLengthener => SYLLABLE_LENGTHENER,
NyiakengPuachueHmong::DigitZero => DIGIT_ZERO,
NyiakengPuachueHmong::DigitOne => DIGIT_ONE,
NyiakengPuachueHmong::DigitTwo => DIGIT_TWO,
NyiakengPuachueHmong::DigitThree => DIGIT_THREE,
NyiakengPuachueHmong::DigitFour => DIGIT_FOUR,
NyiakengPuachueHmong::DigitFive => DIGIT_FIVE,
NyiakengPuachueHmong::DigitSix => DIGIT_SIX,
NyiakengPuachueHmong::DigitSeven => DIGIT_SEVEN,
NyiakengPuachueHmong::DigitEight => DIGIT_EIGHT,
NyiakengPuachueHmong::DigitNine => DIGIT_NINE,
NyiakengPuachueHmong::LogogramNyaj => LOGOGRAM_NYAJ,
}
}
}
impl std::convert::TryFrom<char> for NyiakengPuachueHmong {
type Error = ();
fn try_from(c: char) -> Result<Self, Self::Error> {
use constants::*;
match c {
LETTER_MA => Ok(NyiakengPuachueHmong::LetterMa),
LETTER_TSA => Ok(NyiakengPuachueHmong::LetterTsa),
LETTER_NTA => Ok(NyiakengPuachueHmong::LetterNta),
LETTER_TA => Ok(NyiakengPuachueHmong::LetterTa),
LETTER_HA => Ok(NyiakengPuachueHmong::LetterHa),
LETTER_NA => Ok(NyiakengPuachueHmong::LetterNa),
LETTER_XA => Ok(NyiakengPuachueHmong::LetterXa),
LETTER_NKA => Ok(NyiakengPuachueHmong::LetterNka),
LETTER_CA => Ok(NyiakengPuachueHmong::LetterCa),
LETTER_LA => Ok(NyiakengPuachueHmong::LetterLa),
LETTER_SA => Ok(NyiakengPuachueHmong::LetterSa),
LETTER_ZA => Ok(NyiakengPuachueHmong::LetterZa),
LETTER_NCA => Ok(NyiakengPuachueHmong::LetterNca),
LETTER_NTSA => Ok(NyiakengPuachueHmong::LetterNtsa),
LETTER_KA => Ok(NyiakengPuachueHmong::LetterKa),
LETTER_DA => Ok(NyiakengPuachueHmong::LetterDa),
LETTER_NYA => Ok(NyiakengPuachueHmong::LetterNya),
LETTER_NRA => Ok(NyiakengPuachueHmong::LetterNra),
LETTER_VA => Ok(NyiakengPuachueHmong::LetterVa),
LETTER_NTXA => Ok(NyiakengPuachueHmong::LetterNtxa),
LETTER_TXA => Ok(NyiakengPuachueHmong::LetterTxa),
LETTER_FA => Ok(NyiakengPuachueHmong::LetterFa),
LETTER_RA => Ok(NyiakengPuachueHmong::LetterRa),
LETTER_QA => Ok(NyiakengPuachueHmong::LetterQa),
LETTER_YA => Ok(NyiakengPuachueHmong::LetterYa),
LETTER_NQA => Ok(NyiakengPuachueHmong::LetterNqa),
LETTER_PA => Ok(NyiakengPuachueHmong::LetterPa),
LETTER_XYA => Ok(NyiakengPuachueHmong::LetterXya),
LETTER_NPA => Ok(NyiakengPuachueHmong::LetterNpa),
LETTER_DLA => Ok(NyiakengPuachueHmong::LetterDla),
LETTER_NPLA => Ok(NyiakengPuachueHmong::LetterNpla),
LETTER_HAH => Ok(NyiakengPuachueHmong::LetterHah),
LETTER_MLA => Ok(NyiakengPuachueHmong::LetterMla),
LETTER_PLA => Ok(NyiakengPuachueHmong::LetterPla),
LETTER_GA => Ok(NyiakengPuachueHmong::LetterGa),
LETTER_RRA => Ok(NyiakengPuachueHmong::LetterRra),
LETTER_A => Ok(NyiakengPuachueHmong::LetterA),
LETTER_AA => Ok(NyiakengPuachueHmong::LetterAa),
LETTER_I => Ok(NyiakengPuachueHmong::LetterI),
LETTER_U => Ok(NyiakengPuachueHmong::LetterU),
LETTER_O => Ok(NyiakengPuachueHmong::LetterO),
LETTER_OO => Ok(NyiakengPuachueHmong::LetterOo),
LETTER_E => Ok(NyiakengPuachueHmong::LetterE),
LETTER_EE => Ok(NyiakengPuachueHmong::LetterEe),
LETTER_W => Ok(NyiakengPuachueHmong::LetterW),
TONE_DASH_B => Ok(NyiakengPuachueHmong::ToneDashB),
TONE_DASH_M => Ok(NyiakengPuachueHmong::ToneDashM),
TONE_DASH_J => Ok(NyiakengPuachueHmong::ToneDashJ),
TONE_DASH_V => Ok(NyiakengPuachueHmong::ToneDashV),
TONE_DASH_S => Ok(NyiakengPuachueHmong::ToneDashS),
TONE_DASH_G => Ok(NyiakengPuachueHmong::ToneDashG),
TONE_DASH_D => Ok(NyiakengPuachueHmong::ToneDashD),
SIGN_FOR_PERSON => Ok(NyiakengPuachueHmong::SignForPerson),
SIGN_FOR_THING => Ok(NyiakengPuachueHmong::SignForThing),
SIGN_FOR_LOCATION => Ok(NyiakengPuachueHmong::SignForLocation),
SIGN_FOR_ANIMAL => Ok(NyiakengPuachueHmong::SignForAnimal),
SIGN_FOR_INVERTEBRATE => Ok(NyiakengPuachueHmong::SignForInvertebrate),
SIGN_XW_XW => Ok(NyiakengPuachueHmong::SignXwXw),
SYLLABLE_LENGTHENER => Ok(NyiakengPuachueHmong::SyllableLengthener),
DIGIT_ZERO => Ok(NyiakengPuachueHmong::DigitZero),
DIGIT_ONE => Ok(NyiakengPuachueHmong::DigitOne),
DIGIT_TWO => Ok(NyiakengPuachueHmong::DigitTwo),
DIGIT_THREE => Ok(NyiakengPuachueHmong::DigitThree),
DIGIT_FOUR => Ok(NyiakengPuachueHmong::DigitFour),
DIGIT_FIVE => Ok(NyiakengPuachueHmong::DigitFive),
DIGIT_SIX => Ok(NyiakengPuachueHmong::DigitSix),
DIGIT_SEVEN => Ok(NyiakengPuachueHmong::DigitSeven),
DIGIT_EIGHT => Ok(NyiakengPuachueHmong::DigitEight),
DIGIT_NINE => Ok(NyiakengPuachueHmong::DigitNine),
LOGOGRAM_NYAJ => Ok(NyiakengPuachueHmong::LogogramNyaj),
_ => Err(()),
}
}
}
impl Into<u32> for NyiakengPuachueHmong {
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 NyiakengPuachueHmong {
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 NyiakengPuachueHmong {
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 NyiakengPuachueHmong {
pub fn new() -> Self {
NyiakengPuachueHmong::LetterMa
}
pub fn name(&self) -> &str {
match self {
NyiakengPuachueHmong::LetterMa => "nyiakeng puachue hmong letter ma",
NyiakengPuachueHmong::LetterTsa => "nyiakeng puachue hmong letter tsa",
NyiakengPuachueHmong::LetterNta => "nyiakeng puachue hmong letter nta",
NyiakengPuachueHmong::LetterTa => "nyiakeng puachue hmong letter ta",
NyiakengPuachueHmong::LetterHa => "nyiakeng puachue hmong letter ha",
NyiakengPuachueHmong::LetterNa => "nyiakeng puachue hmong letter na",
NyiakengPuachueHmong::LetterXa => "nyiakeng puachue hmong letter xa",
NyiakengPuachueHmong::LetterNka => "nyiakeng puachue hmong letter nka",
NyiakengPuachueHmong::LetterCa => "nyiakeng puachue hmong letter ca",
NyiakengPuachueHmong::LetterLa => "nyiakeng puachue hmong letter la",
NyiakengPuachueHmong::LetterSa => "nyiakeng puachue hmong letter sa",
NyiakengPuachueHmong::LetterZa => "nyiakeng puachue hmong letter za",
NyiakengPuachueHmong::LetterNca => "nyiakeng puachue hmong letter nca",
NyiakengPuachueHmong::LetterNtsa => "nyiakeng puachue hmong letter ntsa",
NyiakengPuachueHmong::LetterKa => "nyiakeng puachue hmong letter ka",
NyiakengPuachueHmong::LetterDa => "nyiakeng puachue hmong letter da",
NyiakengPuachueHmong::LetterNya => "nyiakeng puachue hmong letter nya",
NyiakengPuachueHmong::LetterNra => "nyiakeng puachue hmong letter nra",
NyiakengPuachueHmong::LetterVa => "nyiakeng puachue hmong letter va",
NyiakengPuachueHmong::LetterNtxa => "nyiakeng puachue hmong letter ntxa",
NyiakengPuachueHmong::LetterTxa => "nyiakeng puachue hmong letter txa",
NyiakengPuachueHmong::LetterFa => "nyiakeng puachue hmong letter fa",
NyiakengPuachueHmong::LetterRa => "nyiakeng puachue hmong letter ra",
NyiakengPuachueHmong::LetterQa => "nyiakeng puachue hmong letter qa",
NyiakengPuachueHmong::LetterYa => "nyiakeng puachue hmong letter ya",
NyiakengPuachueHmong::LetterNqa => "nyiakeng puachue hmong letter nqa",
NyiakengPuachueHmong::LetterPa => "nyiakeng puachue hmong letter pa",
NyiakengPuachueHmong::LetterXya => "nyiakeng puachue hmong letter xya",
NyiakengPuachueHmong::LetterNpa => "nyiakeng puachue hmong letter npa",
NyiakengPuachueHmong::LetterDla => "nyiakeng puachue hmong letter dla",
NyiakengPuachueHmong::LetterNpla => "nyiakeng puachue hmong letter npla",
NyiakengPuachueHmong::LetterHah => "nyiakeng puachue hmong letter hah",
NyiakengPuachueHmong::LetterMla => "nyiakeng puachue hmong letter mla",
NyiakengPuachueHmong::LetterPla => "nyiakeng puachue hmong letter pla",
NyiakengPuachueHmong::LetterGa => "nyiakeng puachue hmong letter ga",
NyiakengPuachueHmong::LetterRra => "nyiakeng puachue hmong letter rra",
NyiakengPuachueHmong::LetterA => "nyiakeng puachue hmong letter a",
NyiakengPuachueHmong::LetterAa => "nyiakeng puachue hmong letter aa",
NyiakengPuachueHmong::LetterI => "nyiakeng puachue hmong letter i",
NyiakengPuachueHmong::LetterU => "nyiakeng puachue hmong letter u",
NyiakengPuachueHmong::LetterO => "nyiakeng puachue hmong letter o",
NyiakengPuachueHmong::LetterOo => "nyiakeng puachue hmong letter oo",
NyiakengPuachueHmong::LetterE => "nyiakeng puachue hmong letter e",
NyiakengPuachueHmong::LetterEe => "nyiakeng puachue hmong letter ee",
NyiakengPuachueHmong::LetterW => "nyiakeng puachue hmong letter w",
NyiakengPuachueHmong::ToneDashB => "nyiakeng puachue hmong tone-b",
NyiakengPuachueHmong::ToneDashM => "nyiakeng puachue hmong tone-m",
NyiakengPuachueHmong::ToneDashJ => "nyiakeng puachue hmong tone-j",
NyiakengPuachueHmong::ToneDashV => "nyiakeng puachue hmong tone-v",
NyiakengPuachueHmong::ToneDashS => "nyiakeng puachue hmong tone-s",
NyiakengPuachueHmong::ToneDashG => "nyiakeng puachue hmong tone-g",
NyiakengPuachueHmong::ToneDashD => "nyiakeng puachue hmong tone-d",
NyiakengPuachueHmong::SignForPerson => "nyiakeng puachue hmong sign for person",
NyiakengPuachueHmong::SignForThing => "nyiakeng puachue hmong sign for thing",
NyiakengPuachueHmong::SignForLocation => "nyiakeng puachue hmong sign for location",
NyiakengPuachueHmong::SignForAnimal => "nyiakeng puachue hmong sign for animal",
NyiakengPuachueHmong::SignForInvertebrate => "nyiakeng puachue hmong sign for invertebrate",
NyiakengPuachueHmong::SignXwXw => "nyiakeng puachue hmong sign xw xw",
NyiakengPuachueHmong::SyllableLengthener => "nyiakeng puachue hmong syllable lengthener",
NyiakengPuachueHmong::DigitZero => "nyiakeng puachue hmong digit zero",
NyiakengPuachueHmong::DigitOne => "nyiakeng puachue hmong digit one",
NyiakengPuachueHmong::DigitTwo => "nyiakeng puachue hmong digit two",
NyiakengPuachueHmong::DigitThree => "nyiakeng puachue hmong digit three",
NyiakengPuachueHmong::DigitFour => "nyiakeng puachue hmong digit four",
NyiakengPuachueHmong::DigitFive => "nyiakeng puachue hmong digit five",
NyiakengPuachueHmong::DigitSix => "nyiakeng puachue hmong digit six",
NyiakengPuachueHmong::DigitSeven => "nyiakeng puachue hmong digit seven",
NyiakengPuachueHmong::DigitEight => "nyiakeng puachue hmong digit eight",
NyiakengPuachueHmong::DigitNine => "nyiakeng puachue hmong digit nine",
NyiakengPuachueHmong::LogogramNyaj => "nyiakeng puachue hmong logogram nyaj",
}
}
}