#[derive(Debug, Clone, Copy, Hash, PartialEq, Eq)]
pub enum Vai {
SyllableEe,
SyllableEen,
SyllableHee,
SyllableWee,
SyllableWeen,
SyllablePee,
SyllableBhee,
SyllableBee,
SyllableMbee,
SyllableKpee,
SyllableMgbee,
SyllableGbee,
SyllableFee,
SyllableVee,
SyllableTee,
SyllableThee,
SyllableDhee,
SyllableDhhee,
SyllableLee,
SyllableRee,
SyllableDee,
SyllableNdee,
SyllableSee,
SyllableShee,
SyllableZee,
SyllableZhee,
SyllableCee,
SyllableJee,
SyllableNjee,
SyllableYee,
SyllableKee,
SyllableNggee,
SyllableGee,
SyllableMee,
SyllableNee,
SyllableNyee,
SyllableI,
SyllableIn,
SyllableHi,
SyllableHin,
SyllableWi,
SyllableWin,
SyllablePi,
SyllableBhi,
SyllableBi,
SyllableMbi,
SyllableKpi,
SyllableMgbi,
SyllableGbi,
SyllableFi,
SyllableVi,
SyllableTi,
SyllableThi,
SyllableDhi,
SyllableDhhi,
SyllableLi,
SyllableRi,
SyllableDi,
SyllableNdi,
SyllableSi,
SyllableShi,
SyllableZi,
SyllableZhi,
SyllableCi,
SyllableJi,
SyllableNji,
SyllableYi,
SyllableKi,
SyllableNggi,
SyllableGi,
SyllableMi,
SyllableNi,
SyllableNyi,
SyllableA,
SyllableAn,
SyllableNgan,
SyllableHa,
SyllableHan,
SyllableWa,
SyllableWan,
SyllablePa,
SyllableBha,
SyllableBa,
SyllableMba,
SyllableKpa,
SyllableKpan,
SyllableMgba,
SyllableGba,
SyllableFa,
SyllableVa,
SyllableTa,
SyllableTha,
SyllableDha,
SyllableDhha,
SyllableLa,
SyllableRa,
SyllableDa,
SyllableNda,
SyllableSa,
SyllableSha,
SyllableZa,
SyllableZha,
SyllableCa,
SyllableJa,
SyllableNja,
SyllableYa,
SyllableKa,
SyllableKan,
SyllableNgga,
SyllableGa,
SyllableMa,
SyllableNa,
SyllableNya,
SyllableOo,
SyllableOon,
SyllableHoo,
SyllableWoo,
SyllableWoon,
SyllablePoo,
SyllableBhoo,
SyllableBoo,
SyllableMboo,
SyllableKpoo,
SyllableMgboo,
SyllableGboo,
SyllableFoo,
SyllableVoo,
SyllableToo,
SyllableThoo,
SyllableDhoo,
SyllableDhhoo,
SyllableLoo,
SyllableRoo,
SyllableDoo,
SyllableNdoo,
SyllableSoo,
SyllableShoo,
SyllableZoo,
SyllableZhoo,
SyllableCoo,
SyllableJoo,
SyllableNjoo,
SyllableYoo,
SyllableKoo,
SyllableNggoo,
SyllableGoo,
SyllableMoo,
SyllableNoo,
SyllableNyoo,
SyllableU,
SyllableUn,
SyllableHu,
SyllableHun,
SyllableWu,
SyllableWun,
SyllablePu,
SyllableBhu,
SyllableBu,
SyllableMbu,
SyllableKpu,
SyllableMgbu,
SyllableGbu,
SyllableFu,
SyllableVu,
SyllableTu,
SyllableThu,
SyllableDhu,
SyllableDhhu,
SyllableLu,
SyllableRu,
SyllableDu,
SyllableNdu,
SyllableSu,
SyllableShu,
SyllableZu,
SyllableZhu,
SyllableCu,
SyllableJu,
SyllableNju,
SyllableYu,
SyllableKu,
SyllableNggu,
SyllableGu,
SyllableMu,
SyllableNu,
SyllableNyu,
SyllableO,
SyllableOn,
SyllableNgon,
SyllableHo,
SyllableHon,
SyllableWo,
SyllableWon,
SyllablePo,
SyllableBho,
SyllableBo,
SyllableMbo,
SyllableKpo,
SyllableMgbo,
SyllableGbo,
SyllableGbon,
SyllableFo,
SyllableVo,
SyllableTo,
SyllableTho,
SyllableDho,
SyllableDhho,
SyllableLo,
SyllableRo,
SyllableDo,
SyllableNdo,
SyllableSo,
SyllableSho,
SyllableZo,
SyllableZho,
SyllableCo,
SyllableJo,
SyllableNjo,
SyllableYo,
SyllableKo,
SyllableNggo,
SyllableGo,
SyllableMo,
SyllableNo,
SyllableNyo,
SyllableE,
SyllableEn,
SyllableNgen,
SyllableHe,
SyllableHen,
SyllableWe,
SyllableWen,
SyllablePe,
SyllableBhe,
SyllableBe,
SyllableMbe,
SyllableKpe,
SyllableKpen,
SyllableMgbe,
SyllableGbe,
SyllableGben,
SyllableFe,
SyllableVe,
SyllableTe,
SyllableThe,
SyllableDhe,
SyllableDhhe,
SyllableLe,
SyllableRe,
SyllableDe,
SyllableNde,
SyllableSe,
SyllableShe,
SyllableZe,
SyllableZhe,
SyllableCe,
SyllableJe,
SyllableNje,
SyllableYe,
SyllableKe,
SyllableNgge,
SyllableNggen,
SyllableGe,
SyllableGen,
SyllableMe,
SyllableNe,
SyllableNye,
SyllableNg,
SyllableLengthener,
Comma,
FullStop,
QuestionMark,
SyllableNdoleFa,
SyllableNdoleKa,
SyllableNdoleSoo,
SymbolFeeng,
SymbolKeeng,
SymbolTing,
SymbolNii,
SymbolBang,
SymbolFaa,
SymbolTaa,
SymbolDang,
SymbolDoong,
SymbolKung,
SymbolTong,
SymbolDoDashO,
SymbolJong,
DigitZero,
DigitOne,
DigitTwo,
DigitThree,
DigitFour,
DigitFive,
DigitSix,
DigitSeven,
DigitEight,
DigitNine,
SyllableNdoleMa,
SyllableNdoleDo,
}
impl Into<char> for Vai {
fn into(self) -> char {
match self {
Vai::SyllableEe => 'ꔀ',
Vai::SyllableEen => 'ꔁ',
Vai::SyllableHee => 'ꔂ',
Vai::SyllableWee => 'ꔃ',
Vai::SyllableWeen => 'ꔄ',
Vai::SyllablePee => 'ꔅ',
Vai::SyllableBhee => 'ꔆ',
Vai::SyllableBee => 'ꔇ',
Vai::SyllableMbee => 'ꔈ',
Vai::SyllableKpee => 'ꔉ',
Vai::SyllableMgbee => 'ꔊ',
Vai::SyllableGbee => 'ꔋ',
Vai::SyllableFee => 'ꔌ',
Vai::SyllableVee => 'ꔍ',
Vai::SyllableTee => 'ꔎ',
Vai::SyllableThee => 'ꔏ',
Vai::SyllableDhee => 'ꔐ',
Vai::SyllableDhhee => 'ꔑ',
Vai::SyllableLee => 'ꔒ',
Vai::SyllableRee => 'ꔓ',
Vai::SyllableDee => 'ꔔ',
Vai::SyllableNdee => 'ꔕ',
Vai::SyllableSee => 'ꔖ',
Vai::SyllableShee => 'ꔗ',
Vai::SyllableZee => 'ꔘ',
Vai::SyllableZhee => 'ꔙ',
Vai::SyllableCee => 'ꔚ',
Vai::SyllableJee => 'ꔛ',
Vai::SyllableNjee => 'ꔜ',
Vai::SyllableYee => 'ꔝ',
Vai::SyllableKee => 'ꔞ',
Vai::SyllableNggee => 'ꔟ',
Vai::SyllableGee => 'ꔠ',
Vai::SyllableMee => 'ꔡ',
Vai::SyllableNee => 'ꔢ',
Vai::SyllableNyee => 'ꔣ',
Vai::SyllableI => 'ꔤ',
Vai::SyllableIn => 'ꔥ',
Vai::SyllableHi => 'ꔦ',
Vai::SyllableHin => 'ꔧ',
Vai::SyllableWi => 'ꔨ',
Vai::SyllableWin => 'ꔩ',
Vai::SyllablePi => 'ꔪ',
Vai::SyllableBhi => 'ꔫ',
Vai::SyllableBi => 'ꔬ',
Vai::SyllableMbi => 'ꔭ',
Vai::SyllableKpi => 'ꔮ',
Vai::SyllableMgbi => 'ꔯ',
Vai::SyllableGbi => 'ꔰ',
Vai::SyllableFi => 'ꔱ',
Vai::SyllableVi => 'ꔲ',
Vai::SyllableTi => 'ꔳ',
Vai::SyllableThi => 'ꔴ',
Vai::SyllableDhi => 'ꔵ',
Vai::SyllableDhhi => 'ꔶ',
Vai::SyllableLi => 'ꔷ',
Vai::SyllableRi => 'ꔸ',
Vai::SyllableDi => 'ꔹ',
Vai::SyllableNdi => 'ꔺ',
Vai::SyllableSi => 'ꔻ',
Vai::SyllableShi => 'ꔼ',
Vai::SyllableZi => 'ꔽ',
Vai::SyllableZhi => 'ꔾ',
Vai::SyllableCi => 'ꔿ',
Vai::SyllableJi => 'ꕀ',
Vai::SyllableNji => 'ꕁ',
Vai::SyllableYi => 'ꕂ',
Vai::SyllableKi => 'ꕃ',
Vai::SyllableNggi => 'ꕄ',
Vai::SyllableGi => 'ꕅ',
Vai::SyllableMi => 'ꕆ',
Vai::SyllableNi => 'ꕇ',
Vai::SyllableNyi => 'ꕈ',
Vai::SyllableA => 'ꕉ',
Vai::SyllableAn => 'ꕊ',
Vai::SyllableNgan => 'ꕋ',
Vai::SyllableHa => 'ꕌ',
Vai::SyllableHan => 'ꕍ',
Vai::SyllableWa => 'ꕎ',
Vai::SyllableWan => 'ꕏ',
Vai::SyllablePa => 'ꕐ',
Vai::SyllableBha => 'ꕑ',
Vai::SyllableBa => 'ꕒ',
Vai::SyllableMba => 'ꕓ',
Vai::SyllableKpa => 'ꕔ',
Vai::SyllableKpan => 'ꕕ',
Vai::SyllableMgba => 'ꕖ',
Vai::SyllableGba => 'ꕗ',
Vai::SyllableFa => 'ꕘ',
Vai::SyllableVa => 'ꕙ',
Vai::SyllableTa => 'ꕚ',
Vai::SyllableTha => 'ꕛ',
Vai::SyllableDha => 'ꕜ',
Vai::SyllableDhha => 'ꕝ',
Vai::SyllableLa => 'ꕞ',
Vai::SyllableRa => 'ꕟ',
Vai::SyllableDa => 'ꕠ',
Vai::SyllableNda => 'ꕡ',
Vai::SyllableSa => 'ꕢ',
Vai::SyllableSha => 'ꕣ',
Vai::SyllableZa => 'ꕤ',
Vai::SyllableZha => 'ꕥ',
Vai::SyllableCa => 'ꕦ',
Vai::SyllableJa => 'ꕧ',
Vai::SyllableNja => 'ꕨ',
Vai::SyllableYa => 'ꕩ',
Vai::SyllableKa => 'ꕪ',
Vai::SyllableKan => 'ꕫ',
Vai::SyllableNgga => 'ꕬ',
Vai::SyllableGa => 'ꕭ',
Vai::SyllableMa => 'ꕮ',
Vai::SyllableNa => 'ꕯ',
Vai::SyllableNya => 'ꕰ',
Vai::SyllableOo => 'ꕱ',
Vai::SyllableOon => 'ꕲ',
Vai::SyllableHoo => 'ꕳ',
Vai::SyllableWoo => 'ꕴ',
Vai::SyllableWoon => 'ꕵ',
Vai::SyllablePoo => 'ꕶ',
Vai::SyllableBhoo => 'ꕷ',
Vai::SyllableBoo => 'ꕸ',
Vai::SyllableMboo => 'ꕹ',
Vai::SyllableKpoo => 'ꕺ',
Vai::SyllableMgboo => 'ꕻ',
Vai::SyllableGboo => 'ꕼ',
Vai::SyllableFoo => 'ꕽ',
Vai::SyllableVoo => 'ꕾ',
Vai::SyllableToo => 'ꕿ',
Vai::SyllableThoo => 'ꖀ',
Vai::SyllableDhoo => 'ꖁ',
Vai::SyllableDhhoo => 'ꖂ',
Vai::SyllableLoo => 'ꖃ',
Vai::SyllableRoo => 'ꖄ',
Vai::SyllableDoo => 'ꖅ',
Vai::SyllableNdoo => 'ꖆ',
Vai::SyllableSoo => 'ꖇ',
Vai::SyllableShoo => 'ꖈ',
Vai::SyllableZoo => 'ꖉ',
Vai::SyllableZhoo => 'ꖊ',
Vai::SyllableCoo => 'ꖋ',
Vai::SyllableJoo => 'ꖌ',
Vai::SyllableNjoo => 'ꖍ',
Vai::SyllableYoo => 'ꖎ',
Vai::SyllableKoo => 'ꖏ',
Vai::SyllableNggoo => 'ꖐ',
Vai::SyllableGoo => 'ꖑ',
Vai::SyllableMoo => 'ꖒ',
Vai::SyllableNoo => 'ꖓ',
Vai::SyllableNyoo => 'ꖔ',
Vai::SyllableU => 'ꖕ',
Vai::SyllableUn => 'ꖖ',
Vai::SyllableHu => 'ꖗ',
Vai::SyllableHun => 'ꖘ',
Vai::SyllableWu => 'ꖙ',
Vai::SyllableWun => 'ꖚ',
Vai::SyllablePu => 'ꖛ',
Vai::SyllableBhu => 'ꖜ',
Vai::SyllableBu => 'ꖝ',
Vai::SyllableMbu => 'ꖞ',
Vai::SyllableKpu => 'ꖟ',
Vai::SyllableMgbu => 'ꖠ',
Vai::SyllableGbu => 'ꖡ',
Vai::SyllableFu => 'ꖢ',
Vai::SyllableVu => 'ꖣ',
Vai::SyllableTu => 'ꖤ',
Vai::SyllableThu => 'ꖥ',
Vai::SyllableDhu => 'ꖦ',
Vai::SyllableDhhu => 'ꖧ',
Vai::SyllableLu => 'ꖨ',
Vai::SyllableRu => 'ꖩ',
Vai::SyllableDu => 'ꖪ',
Vai::SyllableNdu => 'ꖫ',
Vai::SyllableSu => 'ꖬ',
Vai::SyllableShu => 'ꖭ',
Vai::SyllableZu => 'ꖮ',
Vai::SyllableZhu => 'ꖯ',
Vai::SyllableCu => 'ꖰ',
Vai::SyllableJu => 'ꖱ',
Vai::SyllableNju => 'ꖲ',
Vai::SyllableYu => 'ꖳ',
Vai::SyllableKu => 'ꖴ',
Vai::SyllableNggu => 'ꖵ',
Vai::SyllableGu => 'ꖶ',
Vai::SyllableMu => 'ꖷ',
Vai::SyllableNu => 'ꖸ',
Vai::SyllableNyu => 'ꖹ',
Vai::SyllableO => 'ꖺ',
Vai::SyllableOn => 'ꖻ',
Vai::SyllableNgon => 'ꖼ',
Vai::SyllableHo => 'ꖽ',
Vai::SyllableHon => 'ꖾ',
Vai::SyllableWo => 'ꖿ',
Vai::SyllableWon => 'ꗀ',
Vai::SyllablePo => 'ꗁ',
Vai::SyllableBho => 'ꗂ',
Vai::SyllableBo => 'ꗃ',
Vai::SyllableMbo => 'ꗄ',
Vai::SyllableKpo => 'ꗅ',
Vai::SyllableMgbo => 'ꗆ',
Vai::SyllableGbo => 'ꗇ',
Vai::SyllableGbon => 'ꗈ',
Vai::SyllableFo => 'ꗉ',
Vai::SyllableVo => 'ꗊ',
Vai::SyllableTo => 'ꗋ',
Vai::SyllableTho => 'ꗌ',
Vai::SyllableDho => 'ꗍ',
Vai::SyllableDhho => 'ꗎ',
Vai::SyllableLo => 'ꗏ',
Vai::SyllableRo => 'ꗐ',
Vai::SyllableDo => 'ꗑ',
Vai::SyllableNdo => 'ꗒ',
Vai::SyllableSo => 'ꗓ',
Vai::SyllableSho => 'ꗔ',
Vai::SyllableZo => 'ꗕ',
Vai::SyllableZho => 'ꗖ',
Vai::SyllableCo => 'ꗗ',
Vai::SyllableJo => 'ꗘ',
Vai::SyllableNjo => 'ꗙ',
Vai::SyllableYo => 'ꗚ',
Vai::SyllableKo => 'ꗛ',
Vai::SyllableNggo => 'ꗜ',
Vai::SyllableGo => 'ꗝ',
Vai::SyllableMo => 'ꗞ',
Vai::SyllableNo => 'ꗟ',
Vai::SyllableNyo => 'ꗠ',
Vai::SyllableE => 'ꗡ',
Vai::SyllableEn => 'ꗢ',
Vai::SyllableNgen => 'ꗣ',
Vai::SyllableHe => 'ꗤ',
Vai::SyllableHen => 'ꗥ',
Vai::SyllableWe => 'ꗦ',
Vai::SyllableWen => 'ꗧ',
Vai::SyllablePe => 'ꗨ',
Vai::SyllableBhe => 'ꗩ',
Vai::SyllableBe => 'ꗪ',
Vai::SyllableMbe => 'ꗫ',
Vai::SyllableKpe => 'ꗬ',
Vai::SyllableKpen => 'ꗭ',
Vai::SyllableMgbe => 'ꗮ',
Vai::SyllableGbe => 'ꗯ',
Vai::SyllableGben => 'ꗰ',
Vai::SyllableFe => 'ꗱ',
Vai::SyllableVe => 'ꗲ',
Vai::SyllableTe => 'ꗳ',
Vai::SyllableThe => 'ꗴ',
Vai::SyllableDhe => 'ꗵ',
Vai::SyllableDhhe => 'ꗶ',
Vai::SyllableLe => 'ꗷ',
Vai::SyllableRe => 'ꗸ',
Vai::SyllableDe => 'ꗹ',
Vai::SyllableNde => 'ꗺ',
Vai::SyllableSe => 'ꗻ',
Vai::SyllableShe => 'ꗼ',
Vai::SyllableZe => 'ꗽ',
Vai::SyllableZhe => 'ꗾ',
Vai::SyllableCe => 'ꗿ',
Vai::SyllableJe => 'ꘀ',
Vai::SyllableNje => 'ꘁ',
Vai::SyllableYe => 'ꘂ',
Vai::SyllableKe => 'ꘃ',
Vai::SyllableNgge => 'ꘄ',
Vai::SyllableNggen => 'ꘅ',
Vai::SyllableGe => 'ꘆ',
Vai::SyllableGen => 'ꘇ',
Vai::SyllableMe => 'ꘈ',
Vai::SyllableNe => 'ꘉ',
Vai::SyllableNye => 'ꘊ',
Vai::SyllableNg => 'ꘋ',
Vai::SyllableLengthener => 'ꘌ',
Vai::Comma => '꘍',
Vai::FullStop => '꘎',
Vai::QuestionMark => '꘏',
Vai::SyllableNdoleFa => 'ꘐ',
Vai::SyllableNdoleKa => 'ꘑ',
Vai::SyllableNdoleSoo => 'ꘒ',
Vai::SymbolFeeng => 'ꘓ',
Vai::SymbolKeeng => 'ꘔ',
Vai::SymbolTing => 'ꘕ',
Vai::SymbolNii => 'ꘖ',
Vai::SymbolBang => 'ꘗ',
Vai::SymbolFaa => 'ꘘ',
Vai::SymbolTaa => 'ꘙ',
Vai::SymbolDang => 'ꘚ',
Vai::SymbolDoong => 'ꘛ',
Vai::SymbolKung => 'ꘜ',
Vai::SymbolTong => 'ꘝ',
Vai::SymbolDoDashO => 'ꘞ',
Vai::SymbolJong => 'ꘟ',
Vai::DigitZero => '꘠',
Vai::DigitOne => '꘡',
Vai::DigitTwo => '꘢',
Vai::DigitThree => '꘣',
Vai::DigitFour => '꘤',
Vai::DigitFive => '꘥',
Vai::DigitSix => '꘦',
Vai::DigitSeven => '꘧',
Vai::DigitEight => '꘨',
Vai::DigitNine => '꘩',
Vai::SyllableNdoleMa => 'ꘪ',
Vai::SyllableNdoleDo => 'ꘫ',
}
}
}
impl std::convert::TryFrom<char> for Vai {
type Error = ();
fn try_from(c: char) -> Result<Self, Self::Error> {
match c {
'ꔀ' => Ok(Vai::SyllableEe),
'ꔁ' => Ok(Vai::SyllableEen),
'ꔂ' => Ok(Vai::SyllableHee),
'ꔃ' => Ok(Vai::SyllableWee),
'ꔄ' => Ok(Vai::SyllableWeen),
'ꔅ' => Ok(Vai::SyllablePee),
'ꔆ' => Ok(Vai::SyllableBhee),
'ꔇ' => Ok(Vai::SyllableBee),
'ꔈ' => Ok(Vai::SyllableMbee),
'ꔉ' => Ok(Vai::SyllableKpee),
'ꔊ' => Ok(Vai::SyllableMgbee),
'ꔋ' => Ok(Vai::SyllableGbee),
'ꔌ' => Ok(Vai::SyllableFee),
'ꔍ' => Ok(Vai::SyllableVee),
'ꔎ' => Ok(Vai::SyllableTee),
'ꔏ' => Ok(Vai::SyllableThee),
'ꔐ' => Ok(Vai::SyllableDhee),
'ꔑ' => Ok(Vai::SyllableDhhee),
'ꔒ' => Ok(Vai::SyllableLee),
'ꔓ' => Ok(Vai::SyllableRee),
'ꔔ' => Ok(Vai::SyllableDee),
'ꔕ' => Ok(Vai::SyllableNdee),
'ꔖ' => Ok(Vai::SyllableSee),
'ꔗ' => Ok(Vai::SyllableShee),
'ꔘ' => Ok(Vai::SyllableZee),
'ꔙ' => Ok(Vai::SyllableZhee),
'ꔚ' => Ok(Vai::SyllableCee),
'ꔛ' => Ok(Vai::SyllableJee),
'ꔜ' => Ok(Vai::SyllableNjee),
'ꔝ' => Ok(Vai::SyllableYee),
'ꔞ' => Ok(Vai::SyllableKee),
'ꔟ' => Ok(Vai::SyllableNggee),
'ꔠ' => Ok(Vai::SyllableGee),
'ꔡ' => Ok(Vai::SyllableMee),
'ꔢ' => Ok(Vai::SyllableNee),
'ꔣ' => Ok(Vai::SyllableNyee),
'ꔤ' => Ok(Vai::SyllableI),
'ꔥ' => Ok(Vai::SyllableIn),
'ꔦ' => Ok(Vai::SyllableHi),
'ꔧ' => Ok(Vai::SyllableHin),
'ꔨ' => Ok(Vai::SyllableWi),
'ꔩ' => Ok(Vai::SyllableWin),
'ꔪ' => Ok(Vai::SyllablePi),
'ꔫ' => Ok(Vai::SyllableBhi),
'ꔬ' => Ok(Vai::SyllableBi),
'ꔭ' => Ok(Vai::SyllableMbi),
'ꔮ' => Ok(Vai::SyllableKpi),
'ꔯ' => Ok(Vai::SyllableMgbi),
'ꔰ' => Ok(Vai::SyllableGbi),
'ꔱ' => Ok(Vai::SyllableFi),
'ꔲ' => Ok(Vai::SyllableVi),
'ꔳ' => Ok(Vai::SyllableTi),
'ꔴ' => Ok(Vai::SyllableThi),
'ꔵ' => Ok(Vai::SyllableDhi),
'ꔶ' => Ok(Vai::SyllableDhhi),
'ꔷ' => Ok(Vai::SyllableLi),
'ꔸ' => Ok(Vai::SyllableRi),
'ꔹ' => Ok(Vai::SyllableDi),
'ꔺ' => Ok(Vai::SyllableNdi),
'ꔻ' => Ok(Vai::SyllableSi),
'ꔼ' => Ok(Vai::SyllableShi),
'ꔽ' => Ok(Vai::SyllableZi),
'ꔾ' => Ok(Vai::SyllableZhi),
'ꔿ' => Ok(Vai::SyllableCi),
'ꕀ' => Ok(Vai::SyllableJi),
'ꕁ' => Ok(Vai::SyllableNji),
'ꕂ' => Ok(Vai::SyllableYi),
'ꕃ' => Ok(Vai::SyllableKi),
'ꕄ' => Ok(Vai::SyllableNggi),
'ꕅ' => Ok(Vai::SyllableGi),
'ꕆ' => Ok(Vai::SyllableMi),
'ꕇ' => Ok(Vai::SyllableNi),
'ꕈ' => Ok(Vai::SyllableNyi),
'ꕉ' => Ok(Vai::SyllableA),
'ꕊ' => Ok(Vai::SyllableAn),
'ꕋ' => Ok(Vai::SyllableNgan),
'ꕌ' => Ok(Vai::SyllableHa),
'ꕍ' => Ok(Vai::SyllableHan),
'ꕎ' => Ok(Vai::SyllableWa),
'ꕏ' => Ok(Vai::SyllableWan),
'ꕐ' => Ok(Vai::SyllablePa),
'ꕑ' => Ok(Vai::SyllableBha),
'ꕒ' => Ok(Vai::SyllableBa),
'ꕓ' => Ok(Vai::SyllableMba),
'ꕔ' => Ok(Vai::SyllableKpa),
'ꕕ' => Ok(Vai::SyllableKpan),
'ꕖ' => Ok(Vai::SyllableMgba),
'ꕗ' => Ok(Vai::SyllableGba),
'ꕘ' => Ok(Vai::SyllableFa),
'ꕙ' => Ok(Vai::SyllableVa),
'ꕚ' => Ok(Vai::SyllableTa),
'ꕛ' => Ok(Vai::SyllableTha),
'ꕜ' => Ok(Vai::SyllableDha),
'ꕝ' => Ok(Vai::SyllableDhha),
'ꕞ' => Ok(Vai::SyllableLa),
'ꕟ' => Ok(Vai::SyllableRa),
'ꕠ' => Ok(Vai::SyllableDa),
'ꕡ' => Ok(Vai::SyllableNda),
'ꕢ' => Ok(Vai::SyllableSa),
'ꕣ' => Ok(Vai::SyllableSha),
'ꕤ' => Ok(Vai::SyllableZa),
'ꕥ' => Ok(Vai::SyllableZha),
'ꕦ' => Ok(Vai::SyllableCa),
'ꕧ' => Ok(Vai::SyllableJa),
'ꕨ' => Ok(Vai::SyllableNja),
'ꕩ' => Ok(Vai::SyllableYa),
'ꕪ' => Ok(Vai::SyllableKa),
'ꕫ' => Ok(Vai::SyllableKan),
'ꕬ' => Ok(Vai::SyllableNgga),
'ꕭ' => Ok(Vai::SyllableGa),
'ꕮ' => Ok(Vai::SyllableMa),
'ꕯ' => Ok(Vai::SyllableNa),
'ꕰ' => Ok(Vai::SyllableNya),
'ꕱ' => Ok(Vai::SyllableOo),
'ꕲ' => Ok(Vai::SyllableOon),
'ꕳ' => Ok(Vai::SyllableHoo),
'ꕴ' => Ok(Vai::SyllableWoo),
'ꕵ' => Ok(Vai::SyllableWoon),
'ꕶ' => Ok(Vai::SyllablePoo),
'ꕷ' => Ok(Vai::SyllableBhoo),
'ꕸ' => Ok(Vai::SyllableBoo),
'ꕹ' => Ok(Vai::SyllableMboo),
'ꕺ' => Ok(Vai::SyllableKpoo),
'ꕻ' => Ok(Vai::SyllableMgboo),
'ꕼ' => Ok(Vai::SyllableGboo),
'ꕽ' => Ok(Vai::SyllableFoo),
'ꕾ' => Ok(Vai::SyllableVoo),
'ꕿ' => Ok(Vai::SyllableToo),
'ꖀ' => Ok(Vai::SyllableThoo),
'ꖁ' => Ok(Vai::SyllableDhoo),
'ꖂ' => Ok(Vai::SyllableDhhoo),
'ꖃ' => Ok(Vai::SyllableLoo),
'ꖄ' => Ok(Vai::SyllableRoo),
'ꖅ' => Ok(Vai::SyllableDoo),
'ꖆ' => Ok(Vai::SyllableNdoo),
'ꖇ' => Ok(Vai::SyllableSoo),
'ꖈ' => Ok(Vai::SyllableShoo),
'ꖉ' => Ok(Vai::SyllableZoo),
'ꖊ' => Ok(Vai::SyllableZhoo),
'ꖋ' => Ok(Vai::SyllableCoo),
'ꖌ' => Ok(Vai::SyllableJoo),
'ꖍ' => Ok(Vai::SyllableNjoo),
'ꖎ' => Ok(Vai::SyllableYoo),
'ꖏ' => Ok(Vai::SyllableKoo),
'ꖐ' => Ok(Vai::SyllableNggoo),
'ꖑ' => Ok(Vai::SyllableGoo),
'ꖒ' => Ok(Vai::SyllableMoo),
'ꖓ' => Ok(Vai::SyllableNoo),
'ꖔ' => Ok(Vai::SyllableNyoo),
'ꖕ' => Ok(Vai::SyllableU),
'ꖖ' => Ok(Vai::SyllableUn),
'ꖗ' => Ok(Vai::SyllableHu),
'ꖘ' => Ok(Vai::SyllableHun),
'ꖙ' => Ok(Vai::SyllableWu),
'ꖚ' => Ok(Vai::SyllableWun),
'ꖛ' => Ok(Vai::SyllablePu),
'ꖜ' => Ok(Vai::SyllableBhu),
'ꖝ' => Ok(Vai::SyllableBu),
'ꖞ' => Ok(Vai::SyllableMbu),
'ꖟ' => Ok(Vai::SyllableKpu),
'ꖠ' => Ok(Vai::SyllableMgbu),
'ꖡ' => Ok(Vai::SyllableGbu),
'ꖢ' => Ok(Vai::SyllableFu),
'ꖣ' => Ok(Vai::SyllableVu),
'ꖤ' => Ok(Vai::SyllableTu),
'ꖥ' => Ok(Vai::SyllableThu),
'ꖦ' => Ok(Vai::SyllableDhu),
'ꖧ' => Ok(Vai::SyllableDhhu),
'ꖨ' => Ok(Vai::SyllableLu),
'ꖩ' => Ok(Vai::SyllableRu),
'ꖪ' => Ok(Vai::SyllableDu),
'ꖫ' => Ok(Vai::SyllableNdu),
'ꖬ' => Ok(Vai::SyllableSu),
'ꖭ' => Ok(Vai::SyllableShu),
'ꖮ' => Ok(Vai::SyllableZu),
'ꖯ' => Ok(Vai::SyllableZhu),
'ꖰ' => Ok(Vai::SyllableCu),
'ꖱ' => Ok(Vai::SyllableJu),
'ꖲ' => Ok(Vai::SyllableNju),
'ꖳ' => Ok(Vai::SyllableYu),
'ꖴ' => Ok(Vai::SyllableKu),
'ꖵ' => Ok(Vai::SyllableNggu),
'ꖶ' => Ok(Vai::SyllableGu),
'ꖷ' => Ok(Vai::SyllableMu),
'ꖸ' => Ok(Vai::SyllableNu),
'ꖹ' => Ok(Vai::SyllableNyu),
'ꖺ' => Ok(Vai::SyllableO),
'ꖻ' => Ok(Vai::SyllableOn),
'ꖼ' => Ok(Vai::SyllableNgon),
'ꖽ' => Ok(Vai::SyllableHo),
'ꖾ' => Ok(Vai::SyllableHon),
'ꖿ' => Ok(Vai::SyllableWo),
'ꗀ' => Ok(Vai::SyllableWon),
'ꗁ' => Ok(Vai::SyllablePo),
'ꗂ' => Ok(Vai::SyllableBho),
'ꗃ' => Ok(Vai::SyllableBo),
'ꗄ' => Ok(Vai::SyllableMbo),
'ꗅ' => Ok(Vai::SyllableKpo),
'ꗆ' => Ok(Vai::SyllableMgbo),
'ꗇ' => Ok(Vai::SyllableGbo),
'ꗈ' => Ok(Vai::SyllableGbon),
'ꗉ' => Ok(Vai::SyllableFo),
'ꗊ' => Ok(Vai::SyllableVo),
'ꗋ' => Ok(Vai::SyllableTo),
'ꗌ' => Ok(Vai::SyllableTho),
'ꗍ' => Ok(Vai::SyllableDho),
'ꗎ' => Ok(Vai::SyllableDhho),
'ꗏ' => Ok(Vai::SyllableLo),
'ꗐ' => Ok(Vai::SyllableRo),
'ꗑ' => Ok(Vai::SyllableDo),
'ꗒ' => Ok(Vai::SyllableNdo),
'ꗓ' => Ok(Vai::SyllableSo),
'ꗔ' => Ok(Vai::SyllableSho),
'ꗕ' => Ok(Vai::SyllableZo),
'ꗖ' => Ok(Vai::SyllableZho),
'ꗗ' => Ok(Vai::SyllableCo),
'ꗘ' => Ok(Vai::SyllableJo),
'ꗙ' => Ok(Vai::SyllableNjo),
'ꗚ' => Ok(Vai::SyllableYo),
'ꗛ' => Ok(Vai::SyllableKo),
'ꗜ' => Ok(Vai::SyllableNggo),
'ꗝ' => Ok(Vai::SyllableGo),
'ꗞ' => Ok(Vai::SyllableMo),
'ꗟ' => Ok(Vai::SyllableNo),
'ꗠ' => Ok(Vai::SyllableNyo),
'ꗡ' => Ok(Vai::SyllableE),
'ꗢ' => Ok(Vai::SyllableEn),
'ꗣ' => Ok(Vai::SyllableNgen),
'ꗤ' => Ok(Vai::SyllableHe),
'ꗥ' => Ok(Vai::SyllableHen),
'ꗦ' => Ok(Vai::SyllableWe),
'ꗧ' => Ok(Vai::SyllableWen),
'ꗨ' => Ok(Vai::SyllablePe),
'ꗩ' => Ok(Vai::SyllableBhe),
'ꗪ' => Ok(Vai::SyllableBe),
'ꗫ' => Ok(Vai::SyllableMbe),
'ꗬ' => Ok(Vai::SyllableKpe),
'ꗭ' => Ok(Vai::SyllableKpen),
'ꗮ' => Ok(Vai::SyllableMgbe),
'ꗯ' => Ok(Vai::SyllableGbe),
'ꗰ' => Ok(Vai::SyllableGben),
'ꗱ' => Ok(Vai::SyllableFe),
'ꗲ' => Ok(Vai::SyllableVe),
'ꗳ' => Ok(Vai::SyllableTe),
'ꗴ' => Ok(Vai::SyllableThe),
'ꗵ' => Ok(Vai::SyllableDhe),
'ꗶ' => Ok(Vai::SyllableDhhe),
'ꗷ' => Ok(Vai::SyllableLe),
'ꗸ' => Ok(Vai::SyllableRe),
'ꗹ' => Ok(Vai::SyllableDe),
'ꗺ' => Ok(Vai::SyllableNde),
'ꗻ' => Ok(Vai::SyllableSe),
'ꗼ' => Ok(Vai::SyllableShe),
'ꗽ' => Ok(Vai::SyllableZe),
'ꗾ' => Ok(Vai::SyllableZhe),
'ꗿ' => Ok(Vai::SyllableCe),
'ꘀ' => Ok(Vai::SyllableJe),
'ꘁ' => Ok(Vai::SyllableNje),
'ꘂ' => Ok(Vai::SyllableYe),
'ꘃ' => Ok(Vai::SyllableKe),
'ꘄ' => Ok(Vai::SyllableNgge),
'ꘅ' => Ok(Vai::SyllableNggen),
'ꘆ' => Ok(Vai::SyllableGe),
'ꘇ' => Ok(Vai::SyllableGen),
'ꘈ' => Ok(Vai::SyllableMe),
'ꘉ' => Ok(Vai::SyllableNe),
'ꘊ' => Ok(Vai::SyllableNye),
'ꘋ' => Ok(Vai::SyllableNg),
'ꘌ' => Ok(Vai::SyllableLengthener),
'꘍' => Ok(Vai::Comma),
'꘎' => Ok(Vai::FullStop),
'꘏' => Ok(Vai::QuestionMark),
'ꘐ' => Ok(Vai::SyllableNdoleFa),
'ꘑ' => Ok(Vai::SyllableNdoleKa),
'ꘒ' => Ok(Vai::SyllableNdoleSoo),
'ꘓ' => Ok(Vai::SymbolFeeng),
'ꘔ' => Ok(Vai::SymbolKeeng),
'ꘕ' => Ok(Vai::SymbolTing),
'ꘖ' => Ok(Vai::SymbolNii),
'ꘗ' => Ok(Vai::SymbolBang),
'ꘘ' => Ok(Vai::SymbolFaa),
'ꘙ' => Ok(Vai::SymbolTaa),
'ꘚ' => Ok(Vai::SymbolDang),
'ꘛ' => Ok(Vai::SymbolDoong),
'ꘜ' => Ok(Vai::SymbolKung),
'ꘝ' => Ok(Vai::SymbolTong),
'ꘞ' => Ok(Vai::SymbolDoDashO),
'ꘟ' => Ok(Vai::SymbolJong),
'꘠' => Ok(Vai::DigitZero),
'꘡' => Ok(Vai::DigitOne),
'꘢' => Ok(Vai::DigitTwo),
'꘣' => Ok(Vai::DigitThree),
'꘤' => Ok(Vai::DigitFour),
'꘥' => Ok(Vai::DigitFive),
'꘦' => Ok(Vai::DigitSix),
'꘧' => Ok(Vai::DigitSeven),
'꘨' => Ok(Vai::DigitEight),
'꘩' => Ok(Vai::DigitNine),
'ꘪ' => Ok(Vai::SyllableNdoleMa),
'ꘫ' => Ok(Vai::SyllableNdoleDo),
_ => Err(()),
}
}
}
impl Into<u32> for Vai {
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 Vai {
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 Vai {
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 Vai {
pub fn new() -> Self {
Vai::SyllableEe
}
pub fn name(&self) -> String {
let s = std::format!("Vai{:#?}", self);
string_morph::to_sentence_case(&s)
}
}