mod constants {
pub const LETTER_PA: char = '𖼀';
pub const LETTER_BA: char = '𖼁';
pub const LETTER_YI_PA: char = '𖼂';
pub const LETTER_PLA: char = '𖼃';
pub const LETTER_MA: char = '𖼄';
pub const LETTER_MHA: char = '𖼅';
pub const LETTER_ARCHAIC_MA: char = '𖼆';
pub const LETTER_FA: char = '𖼇';
pub const LETTER_VA: char = '𖼈';
pub const LETTER_VFA: char = '𖼉';
pub const LETTER_TA: char = '𖼊';
pub const LETTER_DA: char = '𖼋';
pub const LETTER_YI_TTA: char = '𖼌';
pub const LETTER_YI_TA: char = '𖼍';
pub const LETTER_TTA: char = '𖼎';
pub const LETTER_DDA: char = '𖼏';
pub const LETTER_NA: char = '𖼐';
pub const LETTER_NHA: char = '𖼑';
pub const LETTER_YI_NNA: char = '𖼒';
pub const LETTER_ARCHAIC_NA: char = '𖼓';
pub const LETTER_NNA: char = '𖼔';
pub const LETTER_NNHA: char = '𖼕';
pub const LETTER_LA: char = '𖼖';
pub const LETTER_LYA: char = '𖼗';
pub const LETTER_LHA: char = '𖼘';
pub const LETTER_LHYA: char = '𖼙';
pub const LETTER_TLHA: char = '𖼚';
pub const LETTER_DLHA: char = '𖼛';
pub const LETTER_TLHYA: char = '𖼜';
pub const LETTER_DLHYA: char = '𖼝';
pub const LETTER_KA: char = '𖼞';
pub const LETTER_GA: char = '𖼟';
pub const LETTER_YI_KA: char = '𖼠';
pub const LETTER_QA: char = '𖼡';
pub const LETTER_QGA: char = '𖼢';
pub const LETTER_NGA: char = '𖼣';
pub const LETTER_NGHA: char = '𖼤';
pub const LETTER_ARCHAIC_NGA: char = '𖼥';
pub const LETTER_HA: char = '𖼦';
pub const LETTER_XA: char = '𖼧';
pub const LETTER_GHA: char = '𖼨';
pub const LETTER_GHHA: char = '𖼩';
pub const LETTER_TSSA: char = '𖼪';
pub const LETTER_DZZA: char = '𖼫';
pub const LETTER_NYA: char = '𖼬';
pub const LETTER_NYHA: char = '𖼭';
pub const LETTER_TSHA: char = '𖼮';
pub const LETTER_DZHA: char = '𖼯';
pub const LETTER_YI_TSHA: char = '𖼰';
pub const LETTER_YI_DZHA: char = '𖼱';
pub const LETTER_REFORMED_TSHA: char = '𖼲';
pub const LETTER_SHA: char = '𖼳';
pub const LETTER_SSA: char = '𖼴';
pub const LETTER_ZHA: char = '𖼵';
pub const LETTER_ZSHA: char = '𖼶';
pub const LETTER_TSA: char = '𖼷';
pub const LETTER_DZA: char = '𖼸';
pub const LETTER_YI_TSA: char = '𖼹';
pub const LETTER_SA: char = '𖼺';
pub const LETTER_ZA: char = '𖼻';
pub const LETTER_ZSA: char = '𖼼';
pub const LETTER_ZZA: char = '𖼽';
pub const LETTER_ZZSA: char = '𖼾';
pub const LETTER_ARCHAIC_ZZA: char = '𖼿';
pub const LETTER_ZZYA: char = '𖽀';
pub const LETTER_ZZSYA: char = '𖽁';
pub const LETTER_WA: char = '𖽂';
pub const LETTER_AH: char = '𖽃';
pub const LETTER_HHA: char = '𖽄';
pub const LETTER_BRI: char = '𖽅';
pub const LETTER_SYI: char = '𖽆';
pub const LETTER_DZYI: char = '𖽇';
pub const LETTER_TE: char = '𖽈';
pub const LETTER_TSE: char = '𖽉';
pub const LETTER_RTE: char = '𖽊';
pub const SIGN_CONSONANT_MODIFIER_BAR: char = '𖽏';
pub const LETTER_NASALIZATION: char = '𖽐';
pub const SIGN_ASPIRATION: char = '𖽑';
pub const SIGN_REFORMED_VOICING: char = '𖽒';
pub const SIGN_REFORMED_ASPIRATION: char = '𖽓';
pub const VOWEL_SIGN_A: char = '𖽔';
pub const VOWEL_SIGN_AA: char = '𖽕';
pub const VOWEL_SIGN_AHH: char = '𖽖';
pub const VOWEL_SIGN_AN: char = '𖽗';
pub const VOWEL_SIGN_ANG: char = '𖽘';
pub const VOWEL_SIGN_O: char = '𖽙';
pub const VOWEL_SIGN_OO: char = '𖽚';
pub const VOWEL_SIGN_WO: char = '𖽛';
pub const VOWEL_SIGN_W: char = '𖽜';
pub const VOWEL_SIGN_E: char = '𖽝';
pub const VOWEL_SIGN_EN: char = '𖽞';
pub const VOWEL_SIGN_ENG: char = '𖽟';
pub const VOWEL_SIGN_OEY: char = '𖽠';
pub const VOWEL_SIGN_I: char = '𖽡';
pub const VOWEL_SIGN_IA: char = '𖽢';
pub const VOWEL_SIGN_IAN: char = '𖽣';
pub const VOWEL_SIGN_IANG: char = '𖽤';
pub const VOWEL_SIGN_IO: char = '𖽥';
pub const VOWEL_SIGN_IE: char = '𖽦';
pub const VOWEL_SIGN_II: char = '𖽧';
pub const VOWEL_SIGN_IU: char = '𖽨';
pub const VOWEL_SIGN_ING: char = '𖽩';
pub const VOWEL_SIGN_U: char = '𖽪';
pub const VOWEL_SIGN_UA: char = '𖽫';
pub const VOWEL_SIGN_UAN: char = '𖽬';
pub const VOWEL_SIGN_UANG: char = '𖽭';
pub const VOWEL_SIGN_UU: char = '𖽮';
pub const VOWEL_SIGN_UEI: char = '𖽯';
pub const VOWEL_SIGN_UNG: char = '𖽰';
pub const VOWEL_SIGN_Y: char = '𖽱';
pub const VOWEL_SIGN_YI: char = '𖽲';
pub const VOWEL_SIGN_AE: char = '𖽳';
pub const VOWEL_SIGN_AEE: char = '𖽴';
pub const VOWEL_SIGN_ERR: char = '𖽵';
pub const VOWEL_SIGN_ROUNDED_ERR: char = '𖽶';
pub const VOWEL_SIGN_ER: char = '𖽷';
pub const VOWEL_SIGN_ROUNDED_ER: char = '𖽸';
pub const VOWEL_SIGN_AI: char = '𖽹';
pub const VOWEL_SIGN_EI: char = '𖽺';
pub const VOWEL_SIGN_AU: char = '𖽻';
pub const VOWEL_SIGN_OU: char = '𖽼';
pub const VOWEL_SIGN_N: char = '𖽽';
pub const VOWEL_SIGN_NG: char = '𖽾';
pub const VOWEL_SIGN_UOG: char = '𖽿';
pub const VOWEL_SIGN_YUI: char = '𖾀';
pub const VOWEL_SIGN_OG: char = '𖾁';
pub const VOWEL_SIGN_OER: char = '𖾂';
pub const VOWEL_SIGN_VW: char = '𖾃';
pub const VOWEL_SIGN_IG: char = '𖾄';
pub const VOWEL_SIGN_EA: char = '𖾅';
pub const VOWEL_SIGN_IONG: char = '𖾆';
pub const VOWEL_SIGN_UI: char = '𖾇';
pub const TONE_RIGHT: char = '𖾏';
pub const TONE_TOP_RIGHT: char = '𖾐';
pub const TONE_ABOVE: char = '𖾑';
pub const TONE_BELOW: char = '𖾒';
pub const LETTER_TONE_DASH_2: char = '𖾓';
pub const LETTER_TONE_DASH_3: char = '𖾔';
pub const LETTER_TONE_DASH_4: char = '𖾕';
pub const LETTER_TONE_DASH_5: char = '𖾖';
pub const LETTER_TONE_DASH_6: char = '𖾗';
pub const LETTER_TONE_DASH_7: char = '𖾘';
pub const LETTER_TONE_DASH_8: char = '𖾙';
pub const LETTER_REFORMED_TONE_DASH_1: char = '𖾚';
pub const LETTER_REFORMED_TONE_DASH_2: char = '𖾛';
pub const LETTER_REFORMED_TONE_DASH_4: char = '𖾜';
pub const LETTER_REFORMED_TONE_DASH_5: char = '𖾝';
pub const LETTER_REFORMED_TONE_DASH_6: char = '𖾞';
}
#[derive(Debug, Clone, Copy, Hash, PartialEq, Eq)]
pub enum Miao {
LetterPa,
LetterBa,
LetterYiPa,
LetterPla,
LetterMa,
LetterMha,
LetterArchaicMa,
LetterFa,
LetterVa,
LetterVfa,
LetterTa,
LetterDa,
LetterYiTta,
LetterYiTa,
LetterTta,
LetterDda,
LetterNa,
LetterNha,
LetterYiNna,
LetterArchaicNa,
LetterNna,
LetterNnha,
LetterLa,
LetterLya,
LetterLha,
LetterLhya,
LetterTlha,
LetterDlha,
LetterTlhya,
LetterDlhya,
LetterKa,
LetterGa,
LetterYiKa,
LetterQa,
LetterQga,
LetterNga,
LetterNgha,
LetterArchaicNga,
LetterHa,
LetterXa,
LetterGha,
LetterGhha,
LetterTssa,
LetterDzza,
LetterNya,
LetterNyha,
LetterTsha,
LetterDzha,
LetterYiTsha,
LetterYiDzha,
LetterReformedTsha,
LetterSha,
LetterSsa,
LetterZha,
LetterZsha,
LetterTsa,
LetterDza,
LetterYiTsa,
LetterSa,
LetterZa,
LetterZsa,
LetterZza,
LetterZzsa,
LetterArchaicZza,
LetterZzya,
LetterZzsya,
LetterWa,
LetterAh,
LetterHha,
LetterBri,
LetterSyi,
LetterDzyi,
LetterTe,
LetterTse,
LetterRte,
SignConsonantModifierBar,
LetterNasalization,
SignAspiration,
SignReformedVoicing,
SignReformedAspiration,
VowelSignA,
VowelSignAa,
VowelSignAhh,
VowelSignAn,
VowelSignAng,
VowelSignO,
VowelSignOo,
VowelSignWo,
VowelSignW,
VowelSignE,
VowelSignEn,
VowelSignEng,
VowelSignOey,
VowelSignI,
VowelSignIa,
VowelSignIan,
VowelSignIang,
VowelSignIo,
VowelSignIe,
VowelSignIi,
VowelSignIu,
VowelSignIng,
VowelSignU,
VowelSignUa,
VowelSignUan,
VowelSignUang,
VowelSignUu,
VowelSignUei,
VowelSignUng,
VowelSignY,
VowelSignYi,
VowelSignAe,
VowelSignAee,
VowelSignErr,
VowelSignRoundedErr,
VowelSignEr,
VowelSignRoundedEr,
VowelSignAi,
VowelSignEi,
VowelSignAu,
VowelSignOu,
VowelSignN,
VowelSignNg,
VowelSignUog,
VowelSignYui,
VowelSignOg,
VowelSignOer,
VowelSignVw,
VowelSignIg,
VowelSignEa,
VowelSignIong,
VowelSignUi,
ToneRight,
ToneTopRight,
ToneAbove,
ToneBelow,
LetterToneDash2,
LetterToneDash3,
LetterToneDash4,
LetterToneDash5,
LetterToneDash6,
LetterToneDash7,
LetterToneDash8,
LetterReformedToneDash1,
LetterReformedToneDash2,
LetterReformedToneDash4,
LetterReformedToneDash5,
LetterReformedToneDash6,
}
impl Into<char> for Miao {
fn into(self) -> char {
use constants::*;
match self {
Miao::LetterPa => LETTER_PA,
Miao::LetterBa => LETTER_BA,
Miao::LetterYiPa => LETTER_YI_PA,
Miao::LetterPla => LETTER_PLA,
Miao::LetterMa => LETTER_MA,
Miao::LetterMha => LETTER_MHA,
Miao::LetterArchaicMa => LETTER_ARCHAIC_MA,
Miao::LetterFa => LETTER_FA,
Miao::LetterVa => LETTER_VA,
Miao::LetterVfa => LETTER_VFA,
Miao::LetterTa => LETTER_TA,
Miao::LetterDa => LETTER_DA,
Miao::LetterYiTta => LETTER_YI_TTA,
Miao::LetterYiTa => LETTER_YI_TA,
Miao::LetterTta => LETTER_TTA,
Miao::LetterDda => LETTER_DDA,
Miao::LetterNa => LETTER_NA,
Miao::LetterNha => LETTER_NHA,
Miao::LetterYiNna => LETTER_YI_NNA,
Miao::LetterArchaicNa => LETTER_ARCHAIC_NA,
Miao::LetterNna => LETTER_NNA,
Miao::LetterNnha => LETTER_NNHA,
Miao::LetterLa => LETTER_LA,
Miao::LetterLya => LETTER_LYA,
Miao::LetterLha => LETTER_LHA,
Miao::LetterLhya => LETTER_LHYA,
Miao::LetterTlha => LETTER_TLHA,
Miao::LetterDlha => LETTER_DLHA,
Miao::LetterTlhya => LETTER_TLHYA,
Miao::LetterDlhya => LETTER_DLHYA,
Miao::LetterKa => LETTER_KA,
Miao::LetterGa => LETTER_GA,
Miao::LetterYiKa => LETTER_YI_KA,
Miao::LetterQa => LETTER_QA,
Miao::LetterQga => LETTER_QGA,
Miao::LetterNga => LETTER_NGA,
Miao::LetterNgha => LETTER_NGHA,
Miao::LetterArchaicNga => LETTER_ARCHAIC_NGA,
Miao::LetterHa => LETTER_HA,
Miao::LetterXa => LETTER_XA,
Miao::LetterGha => LETTER_GHA,
Miao::LetterGhha => LETTER_GHHA,
Miao::LetterTssa => LETTER_TSSA,
Miao::LetterDzza => LETTER_DZZA,
Miao::LetterNya => LETTER_NYA,
Miao::LetterNyha => LETTER_NYHA,
Miao::LetterTsha => LETTER_TSHA,
Miao::LetterDzha => LETTER_DZHA,
Miao::LetterYiTsha => LETTER_YI_TSHA,
Miao::LetterYiDzha => LETTER_YI_DZHA,
Miao::LetterReformedTsha => LETTER_REFORMED_TSHA,
Miao::LetterSha => LETTER_SHA,
Miao::LetterSsa => LETTER_SSA,
Miao::LetterZha => LETTER_ZHA,
Miao::LetterZsha => LETTER_ZSHA,
Miao::LetterTsa => LETTER_TSA,
Miao::LetterDza => LETTER_DZA,
Miao::LetterYiTsa => LETTER_YI_TSA,
Miao::LetterSa => LETTER_SA,
Miao::LetterZa => LETTER_ZA,
Miao::LetterZsa => LETTER_ZSA,
Miao::LetterZza => LETTER_ZZA,
Miao::LetterZzsa => LETTER_ZZSA,
Miao::LetterArchaicZza => LETTER_ARCHAIC_ZZA,
Miao::LetterZzya => LETTER_ZZYA,
Miao::LetterZzsya => LETTER_ZZSYA,
Miao::LetterWa => LETTER_WA,
Miao::LetterAh => LETTER_AH,
Miao::LetterHha => LETTER_HHA,
Miao::LetterBri => LETTER_BRI,
Miao::LetterSyi => LETTER_SYI,
Miao::LetterDzyi => LETTER_DZYI,
Miao::LetterTe => LETTER_TE,
Miao::LetterTse => LETTER_TSE,
Miao::LetterRte => LETTER_RTE,
Miao::SignConsonantModifierBar => SIGN_CONSONANT_MODIFIER_BAR,
Miao::LetterNasalization => LETTER_NASALIZATION,
Miao::SignAspiration => SIGN_ASPIRATION,
Miao::SignReformedVoicing => SIGN_REFORMED_VOICING,
Miao::SignReformedAspiration => SIGN_REFORMED_ASPIRATION,
Miao::VowelSignA => VOWEL_SIGN_A,
Miao::VowelSignAa => VOWEL_SIGN_AA,
Miao::VowelSignAhh => VOWEL_SIGN_AHH,
Miao::VowelSignAn => VOWEL_SIGN_AN,
Miao::VowelSignAng => VOWEL_SIGN_ANG,
Miao::VowelSignO => VOWEL_SIGN_O,
Miao::VowelSignOo => VOWEL_SIGN_OO,
Miao::VowelSignWo => VOWEL_SIGN_WO,
Miao::VowelSignW => VOWEL_SIGN_W,
Miao::VowelSignE => VOWEL_SIGN_E,
Miao::VowelSignEn => VOWEL_SIGN_EN,
Miao::VowelSignEng => VOWEL_SIGN_ENG,
Miao::VowelSignOey => VOWEL_SIGN_OEY,
Miao::VowelSignI => VOWEL_SIGN_I,
Miao::VowelSignIa => VOWEL_SIGN_IA,
Miao::VowelSignIan => VOWEL_SIGN_IAN,
Miao::VowelSignIang => VOWEL_SIGN_IANG,
Miao::VowelSignIo => VOWEL_SIGN_IO,
Miao::VowelSignIe => VOWEL_SIGN_IE,
Miao::VowelSignIi => VOWEL_SIGN_II,
Miao::VowelSignIu => VOWEL_SIGN_IU,
Miao::VowelSignIng => VOWEL_SIGN_ING,
Miao::VowelSignU => VOWEL_SIGN_U,
Miao::VowelSignUa => VOWEL_SIGN_UA,
Miao::VowelSignUan => VOWEL_SIGN_UAN,
Miao::VowelSignUang => VOWEL_SIGN_UANG,
Miao::VowelSignUu => VOWEL_SIGN_UU,
Miao::VowelSignUei => VOWEL_SIGN_UEI,
Miao::VowelSignUng => VOWEL_SIGN_UNG,
Miao::VowelSignY => VOWEL_SIGN_Y,
Miao::VowelSignYi => VOWEL_SIGN_YI,
Miao::VowelSignAe => VOWEL_SIGN_AE,
Miao::VowelSignAee => VOWEL_SIGN_AEE,
Miao::VowelSignErr => VOWEL_SIGN_ERR,
Miao::VowelSignRoundedErr => VOWEL_SIGN_ROUNDED_ERR,
Miao::VowelSignEr => VOWEL_SIGN_ER,
Miao::VowelSignRoundedEr => VOWEL_SIGN_ROUNDED_ER,
Miao::VowelSignAi => VOWEL_SIGN_AI,
Miao::VowelSignEi => VOWEL_SIGN_EI,
Miao::VowelSignAu => VOWEL_SIGN_AU,
Miao::VowelSignOu => VOWEL_SIGN_OU,
Miao::VowelSignN => VOWEL_SIGN_N,
Miao::VowelSignNg => VOWEL_SIGN_NG,
Miao::VowelSignUog => VOWEL_SIGN_UOG,
Miao::VowelSignYui => VOWEL_SIGN_YUI,
Miao::VowelSignOg => VOWEL_SIGN_OG,
Miao::VowelSignOer => VOWEL_SIGN_OER,
Miao::VowelSignVw => VOWEL_SIGN_VW,
Miao::VowelSignIg => VOWEL_SIGN_IG,
Miao::VowelSignEa => VOWEL_SIGN_EA,
Miao::VowelSignIong => VOWEL_SIGN_IONG,
Miao::VowelSignUi => VOWEL_SIGN_UI,
Miao::ToneRight => TONE_RIGHT,
Miao::ToneTopRight => TONE_TOP_RIGHT,
Miao::ToneAbove => TONE_ABOVE,
Miao::ToneBelow => TONE_BELOW,
Miao::LetterToneDash2 => LETTER_TONE_DASH_2,
Miao::LetterToneDash3 => LETTER_TONE_DASH_3,
Miao::LetterToneDash4 => LETTER_TONE_DASH_4,
Miao::LetterToneDash5 => LETTER_TONE_DASH_5,
Miao::LetterToneDash6 => LETTER_TONE_DASH_6,
Miao::LetterToneDash7 => LETTER_TONE_DASH_7,
Miao::LetterToneDash8 => LETTER_TONE_DASH_8,
Miao::LetterReformedToneDash1 => LETTER_REFORMED_TONE_DASH_1,
Miao::LetterReformedToneDash2 => LETTER_REFORMED_TONE_DASH_2,
Miao::LetterReformedToneDash4 => LETTER_REFORMED_TONE_DASH_4,
Miao::LetterReformedToneDash5 => LETTER_REFORMED_TONE_DASH_5,
Miao::LetterReformedToneDash6 => LETTER_REFORMED_TONE_DASH_6,
}
}
}
impl std::convert::TryFrom<char> for Miao {
type Error = ();
fn try_from(c: char) -> Result<Self, Self::Error> {
use constants::*;
match c {
LETTER_PA => Ok(Miao::LetterPa),
LETTER_BA => Ok(Miao::LetterBa),
LETTER_YI_PA => Ok(Miao::LetterYiPa),
LETTER_PLA => Ok(Miao::LetterPla),
LETTER_MA => Ok(Miao::LetterMa),
LETTER_MHA => Ok(Miao::LetterMha),
LETTER_ARCHAIC_MA => Ok(Miao::LetterArchaicMa),
LETTER_FA => Ok(Miao::LetterFa),
LETTER_VA => Ok(Miao::LetterVa),
LETTER_VFA => Ok(Miao::LetterVfa),
LETTER_TA => Ok(Miao::LetterTa),
LETTER_DA => Ok(Miao::LetterDa),
LETTER_YI_TTA => Ok(Miao::LetterYiTta),
LETTER_YI_TA => Ok(Miao::LetterYiTa),
LETTER_TTA => Ok(Miao::LetterTta),
LETTER_DDA => Ok(Miao::LetterDda),
LETTER_NA => Ok(Miao::LetterNa),
LETTER_NHA => Ok(Miao::LetterNha),
LETTER_YI_NNA => Ok(Miao::LetterYiNna),
LETTER_ARCHAIC_NA => Ok(Miao::LetterArchaicNa),
LETTER_NNA => Ok(Miao::LetterNna),
LETTER_NNHA => Ok(Miao::LetterNnha),
LETTER_LA => Ok(Miao::LetterLa),
LETTER_LYA => Ok(Miao::LetterLya),
LETTER_LHA => Ok(Miao::LetterLha),
LETTER_LHYA => Ok(Miao::LetterLhya),
LETTER_TLHA => Ok(Miao::LetterTlha),
LETTER_DLHA => Ok(Miao::LetterDlha),
LETTER_TLHYA => Ok(Miao::LetterTlhya),
LETTER_DLHYA => Ok(Miao::LetterDlhya),
LETTER_KA => Ok(Miao::LetterKa),
LETTER_GA => Ok(Miao::LetterGa),
LETTER_YI_KA => Ok(Miao::LetterYiKa),
LETTER_QA => Ok(Miao::LetterQa),
LETTER_QGA => Ok(Miao::LetterQga),
LETTER_NGA => Ok(Miao::LetterNga),
LETTER_NGHA => Ok(Miao::LetterNgha),
LETTER_ARCHAIC_NGA => Ok(Miao::LetterArchaicNga),
LETTER_HA => Ok(Miao::LetterHa),
LETTER_XA => Ok(Miao::LetterXa),
LETTER_GHA => Ok(Miao::LetterGha),
LETTER_GHHA => Ok(Miao::LetterGhha),
LETTER_TSSA => Ok(Miao::LetterTssa),
LETTER_DZZA => Ok(Miao::LetterDzza),
LETTER_NYA => Ok(Miao::LetterNya),
LETTER_NYHA => Ok(Miao::LetterNyha),
LETTER_TSHA => Ok(Miao::LetterTsha),
LETTER_DZHA => Ok(Miao::LetterDzha),
LETTER_YI_TSHA => Ok(Miao::LetterYiTsha),
LETTER_YI_DZHA => Ok(Miao::LetterYiDzha),
LETTER_REFORMED_TSHA => Ok(Miao::LetterReformedTsha),
LETTER_SHA => Ok(Miao::LetterSha),
LETTER_SSA => Ok(Miao::LetterSsa),
LETTER_ZHA => Ok(Miao::LetterZha),
LETTER_ZSHA => Ok(Miao::LetterZsha),
LETTER_TSA => Ok(Miao::LetterTsa),
LETTER_DZA => Ok(Miao::LetterDza),
LETTER_YI_TSA => Ok(Miao::LetterYiTsa),
LETTER_SA => Ok(Miao::LetterSa),
LETTER_ZA => Ok(Miao::LetterZa),
LETTER_ZSA => Ok(Miao::LetterZsa),
LETTER_ZZA => Ok(Miao::LetterZza),
LETTER_ZZSA => Ok(Miao::LetterZzsa),
LETTER_ARCHAIC_ZZA => Ok(Miao::LetterArchaicZza),
LETTER_ZZYA => Ok(Miao::LetterZzya),
LETTER_ZZSYA => Ok(Miao::LetterZzsya),
LETTER_WA => Ok(Miao::LetterWa),
LETTER_AH => Ok(Miao::LetterAh),
LETTER_HHA => Ok(Miao::LetterHha),
LETTER_BRI => Ok(Miao::LetterBri),
LETTER_SYI => Ok(Miao::LetterSyi),
LETTER_DZYI => Ok(Miao::LetterDzyi),
LETTER_TE => Ok(Miao::LetterTe),
LETTER_TSE => Ok(Miao::LetterTse),
LETTER_RTE => Ok(Miao::LetterRte),
SIGN_CONSONANT_MODIFIER_BAR => Ok(Miao::SignConsonantModifierBar),
LETTER_NASALIZATION => Ok(Miao::LetterNasalization),
SIGN_ASPIRATION => Ok(Miao::SignAspiration),
SIGN_REFORMED_VOICING => Ok(Miao::SignReformedVoicing),
SIGN_REFORMED_ASPIRATION => Ok(Miao::SignReformedAspiration),
VOWEL_SIGN_A => Ok(Miao::VowelSignA),
VOWEL_SIGN_AA => Ok(Miao::VowelSignAa),
VOWEL_SIGN_AHH => Ok(Miao::VowelSignAhh),
VOWEL_SIGN_AN => Ok(Miao::VowelSignAn),
VOWEL_SIGN_ANG => Ok(Miao::VowelSignAng),
VOWEL_SIGN_O => Ok(Miao::VowelSignO),
VOWEL_SIGN_OO => Ok(Miao::VowelSignOo),
VOWEL_SIGN_WO => Ok(Miao::VowelSignWo),
VOWEL_SIGN_W => Ok(Miao::VowelSignW),
VOWEL_SIGN_E => Ok(Miao::VowelSignE),
VOWEL_SIGN_EN => Ok(Miao::VowelSignEn),
VOWEL_SIGN_ENG => Ok(Miao::VowelSignEng),
VOWEL_SIGN_OEY => Ok(Miao::VowelSignOey),
VOWEL_SIGN_I => Ok(Miao::VowelSignI),
VOWEL_SIGN_IA => Ok(Miao::VowelSignIa),
VOWEL_SIGN_IAN => Ok(Miao::VowelSignIan),
VOWEL_SIGN_IANG => Ok(Miao::VowelSignIang),
VOWEL_SIGN_IO => Ok(Miao::VowelSignIo),
VOWEL_SIGN_IE => Ok(Miao::VowelSignIe),
VOWEL_SIGN_II => Ok(Miao::VowelSignIi),
VOWEL_SIGN_IU => Ok(Miao::VowelSignIu),
VOWEL_SIGN_ING => Ok(Miao::VowelSignIng),
VOWEL_SIGN_U => Ok(Miao::VowelSignU),
VOWEL_SIGN_UA => Ok(Miao::VowelSignUa),
VOWEL_SIGN_UAN => Ok(Miao::VowelSignUan),
VOWEL_SIGN_UANG => Ok(Miao::VowelSignUang),
VOWEL_SIGN_UU => Ok(Miao::VowelSignUu),
VOWEL_SIGN_UEI => Ok(Miao::VowelSignUei),
VOWEL_SIGN_UNG => Ok(Miao::VowelSignUng),
VOWEL_SIGN_Y => Ok(Miao::VowelSignY),
VOWEL_SIGN_YI => Ok(Miao::VowelSignYi),
VOWEL_SIGN_AE => Ok(Miao::VowelSignAe),
VOWEL_SIGN_AEE => Ok(Miao::VowelSignAee),
VOWEL_SIGN_ERR => Ok(Miao::VowelSignErr),
VOWEL_SIGN_ROUNDED_ERR => Ok(Miao::VowelSignRoundedErr),
VOWEL_SIGN_ER => Ok(Miao::VowelSignEr),
VOWEL_SIGN_ROUNDED_ER => Ok(Miao::VowelSignRoundedEr),
VOWEL_SIGN_AI => Ok(Miao::VowelSignAi),
VOWEL_SIGN_EI => Ok(Miao::VowelSignEi),
VOWEL_SIGN_AU => Ok(Miao::VowelSignAu),
VOWEL_SIGN_OU => Ok(Miao::VowelSignOu),
VOWEL_SIGN_N => Ok(Miao::VowelSignN),
VOWEL_SIGN_NG => Ok(Miao::VowelSignNg),
VOWEL_SIGN_UOG => Ok(Miao::VowelSignUog),
VOWEL_SIGN_YUI => Ok(Miao::VowelSignYui),
VOWEL_SIGN_OG => Ok(Miao::VowelSignOg),
VOWEL_SIGN_OER => Ok(Miao::VowelSignOer),
VOWEL_SIGN_VW => Ok(Miao::VowelSignVw),
VOWEL_SIGN_IG => Ok(Miao::VowelSignIg),
VOWEL_SIGN_EA => Ok(Miao::VowelSignEa),
VOWEL_SIGN_IONG => Ok(Miao::VowelSignIong),
VOWEL_SIGN_UI => Ok(Miao::VowelSignUi),
TONE_RIGHT => Ok(Miao::ToneRight),
TONE_TOP_RIGHT => Ok(Miao::ToneTopRight),
TONE_ABOVE => Ok(Miao::ToneAbove),
TONE_BELOW => Ok(Miao::ToneBelow),
LETTER_TONE_DASH_2 => Ok(Miao::LetterToneDash2),
LETTER_TONE_DASH_3 => Ok(Miao::LetterToneDash3),
LETTER_TONE_DASH_4 => Ok(Miao::LetterToneDash4),
LETTER_TONE_DASH_5 => Ok(Miao::LetterToneDash5),
LETTER_TONE_DASH_6 => Ok(Miao::LetterToneDash6),
LETTER_TONE_DASH_7 => Ok(Miao::LetterToneDash7),
LETTER_TONE_DASH_8 => Ok(Miao::LetterToneDash8),
LETTER_REFORMED_TONE_DASH_1 => Ok(Miao::LetterReformedToneDash1),
LETTER_REFORMED_TONE_DASH_2 => Ok(Miao::LetterReformedToneDash2),
LETTER_REFORMED_TONE_DASH_4 => Ok(Miao::LetterReformedToneDash4),
LETTER_REFORMED_TONE_DASH_5 => Ok(Miao::LetterReformedToneDash5),
LETTER_REFORMED_TONE_DASH_6 => Ok(Miao::LetterReformedToneDash6),
_ => Err(()),
}
}
}
impl Into<u32> for Miao {
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 Miao {
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 Miao {
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 Miao {
pub fn new() -> Self {
Miao::LetterPa
}
pub fn name(&self) -> &str {
match self {
Miao::LetterPa => "miao letter pa",
Miao::LetterBa => "miao letter ba",
Miao::LetterYiPa => "miao letter yi pa",
Miao::LetterPla => "miao letter pla",
Miao::LetterMa => "miao letter ma",
Miao::LetterMha => "miao letter mha",
Miao::LetterArchaicMa => "miao letter archaic ma",
Miao::LetterFa => "miao letter fa",
Miao::LetterVa => "miao letter va",
Miao::LetterVfa => "miao letter vfa",
Miao::LetterTa => "miao letter ta",
Miao::LetterDa => "miao letter da",
Miao::LetterYiTta => "miao letter yi tta",
Miao::LetterYiTa => "miao letter yi ta",
Miao::LetterTta => "miao letter tta",
Miao::LetterDda => "miao letter dda",
Miao::LetterNa => "miao letter na",
Miao::LetterNha => "miao letter nha",
Miao::LetterYiNna => "miao letter yi nna",
Miao::LetterArchaicNa => "miao letter archaic na",
Miao::LetterNna => "miao letter nna",
Miao::LetterNnha => "miao letter nnha",
Miao::LetterLa => "miao letter la",
Miao::LetterLya => "miao letter lya",
Miao::LetterLha => "miao letter lha",
Miao::LetterLhya => "miao letter lhya",
Miao::LetterTlha => "miao letter tlha",
Miao::LetterDlha => "miao letter dlha",
Miao::LetterTlhya => "miao letter tlhya",
Miao::LetterDlhya => "miao letter dlhya",
Miao::LetterKa => "miao letter ka",
Miao::LetterGa => "miao letter ga",
Miao::LetterYiKa => "miao letter yi ka",
Miao::LetterQa => "miao letter qa",
Miao::LetterQga => "miao letter qga",
Miao::LetterNga => "miao letter nga",
Miao::LetterNgha => "miao letter ngha",
Miao::LetterArchaicNga => "miao letter archaic nga",
Miao::LetterHa => "miao letter ha",
Miao::LetterXa => "miao letter xa",
Miao::LetterGha => "miao letter gha",
Miao::LetterGhha => "miao letter ghha",
Miao::LetterTssa => "miao letter tssa",
Miao::LetterDzza => "miao letter dzza",
Miao::LetterNya => "miao letter nya",
Miao::LetterNyha => "miao letter nyha",
Miao::LetterTsha => "miao letter tsha",
Miao::LetterDzha => "miao letter dzha",
Miao::LetterYiTsha => "miao letter yi tsha",
Miao::LetterYiDzha => "miao letter yi dzha",
Miao::LetterReformedTsha => "miao letter reformed tsha",
Miao::LetterSha => "miao letter sha",
Miao::LetterSsa => "miao letter ssa",
Miao::LetterZha => "miao letter zha",
Miao::LetterZsha => "miao letter zsha",
Miao::LetterTsa => "miao letter tsa",
Miao::LetterDza => "miao letter dza",
Miao::LetterYiTsa => "miao letter yi tsa",
Miao::LetterSa => "miao letter sa",
Miao::LetterZa => "miao letter za",
Miao::LetterZsa => "miao letter zsa",
Miao::LetterZza => "miao letter zza",
Miao::LetterZzsa => "miao letter zzsa",
Miao::LetterArchaicZza => "miao letter archaic zza",
Miao::LetterZzya => "miao letter zzya",
Miao::LetterZzsya => "miao letter zzsya",
Miao::LetterWa => "miao letter wa",
Miao::LetterAh => "miao letter ah",
Miao::LetterHha => "miao letter hha",
Miao::LetterBri => "miao letter bri",
Miao::LetterSyi => "miao letter syi",
Miao::LetterDzyi => "miao letter dzyi",
Miao::LetterTe => "miao letter te",
Miao::LetterTse => "miao letter tse",
Miao::LetterRte => "miao letter rte",
Miao::SignConsonantModifierBar => "miao sign consonant modifier bar",
Miao::LetterNasalization => "miao letter nasalization",
Miao::SignAspiration => "miao sign aspiration",
Miao::SignReformedVoicing => "miao sign reformed voicing",
Miao::SignReformedAspiration => "miao sign reformed aspiration",
Miao::VowelSignA => "miao vowel sign a",
Miao::VowelSignAa => "miao vowel sign aa",
Miao::VowelSignAhh => "miao vowel sign ahh",
Miao::VowelSignAn => "miao vowel sign an",
Miao::VowelSignAng => "miao vowel sign ang",
Miao::VowelSignO => "miao vowel sign o",
Miao::VowelSignOo => "miao vowel sign oo",
Miao::VowelSignWo => "miao vowel sign wo",
Miao::VowelSignW => "miao vowel sign w",
Miao::VowelSignE => "miao vowel sign e",
Miao::VowelSignEn => "miao vowel sign en",
Miao::VowelSignEng => "miao vowel sign eng",
Miao::VowelSignOey => "miao vowel sign oey",
Miao::VowelSignI => "miao vowel sign i",
Miao::VowelSignIa => "miao vowel sign ia",
Miao::VowelSignIan => "miao vowel sign ian",
Miao::VowelSignIang => "miao vowel sign iang",
Miao::VowelSignIo => "miao vowel sign io",
Miao::VowelSignIe => "miao vowel sign ie",
Miao::VowelSignIi => "miao vowel sign ii",
Miao::VowelSignIu => "miao vowel sign iu",
Miao::VowelSignIng => "miao vowel sign ing",
Miao::VowelSignU => "miao vowel sign u",
Miao::VowelSignUa => "miao vowel sign ua",
Miao::VowelSignUan => "miao vowel sign uan",
Miao::VowelSignUang => "miao vowel sign uang",
Miao::VowelSignUu => "miao vowel sign uu",
Miao::VowelSignUei => "miao vowel sign uei",
Miao::VowelSignUng => "miao vowel sign ung",
Miao::VowelSignY => "miao vowel sign y",
Miao::VowelSignYi => "miao vowel sign yi",
Miao::VowelSignAe => "miao vowel sign ae",
Miao::VowelSignAee => "miao vowel sign aee",
Miao::VowelSignErr => "miao vowel sign err",
Miao::VowelSignRoundedErr => "miao vowel sign rounded err",
Miao::VowelSignEr => "miao vowel sign er",
Miao::VowelSignRoundedEr => "miao vowel sign rounded er",
Miao::VowelSignAi => "miao vowel sign ai",
Miao::VowelSignEi => "miao vowel sign ei",
Miao::VowelSignAu => "miao vowel sign au",
Miao::VowelSignOu => "miao vowel sign ou",
Miao::VowelSignN => "miao vowel sign n",
Miao::VowelSignNg => "miao vowel sign ng",
Miao::VowelSignUog => "miao vowel sign uog",
Miao::VowelSignYui => "miao vowel sign yui",
Miao::VowelSignOg => "miao vowel sign og",
Miao::VowelSignOer => "miao vowel sign oer",
Miao::VowelSignVw => "miao vowel sign vw",
Miao::VowelSignIg => "miao vowel sign ig",
Miao::VowelSignEa => "miao vowel sign ea",
Miao::VowelSignIong => "miao vowel sign iong",
Miao::VowelSignUi => "miao vowel sign ui",
Miao::ToneRight => "miao tone right",
Miao::ToneTopRight => "miao tone top right",
Miao::ToneAbove => "miao tone above",
Miao::ToneBelow => "miao tone below",
Miao::LetterToneDash2 => "miao letter tone-2",
Miao::LetterToneDash3 => "miao letter tone-3",
Miao::LetterToneDash4 => "miao letter tone-4",
Miao::LetterToneDash5 => "miao letter tone-5",
Miao::LetterToneDash6 => "miao letter tone-6",
Miao::LetterToneDash7 => "miao letter tone-7",
Miao::LetterToneDash8 => "miao letter tone-8",
Miao::LetterReformedToneDash1 => "miao letter reformed tone-1",
Miao::LetterReformedToneDash2 => "miao letter reformed tone-2",
Miao::LetterReformedToneDash4 => "miao letter reformed tone-4",
Miao::LetterReformedToneDash5 => "miao letter reformed tone-5",
Miao::LetterReformedToneDash6 => "miao letter reformed tone-6",
}
}
}