#[derive(Debug, Clone, Copy, Hash, PartialEq, Eq)]
pub enum Tibetan {
SyllableOm,
MarkGterYigMgoTruncatedA,
MarkGterYigMgoDashUmRnamBcadMa,
MarkGterYigMgoDashUmGterTshegMa,
MarkInitialYigMgoMdunMa,
MarkClosingYigMgoSgabMa,
MarkCaretYigMgoPhurShadMa,
MarkYigMgoTshegShadMa,
MarkSbrulShad,
MarkBskurYigMgo,
MarkBkaDashShogYigMgo,
MarkIntersyllabicTsheg,
MarkDelimiterTshegBstar,
MarkShad,
MarkNyisShad,
MarkTshegShad,
MarkNyisTshegShad,
MarkRinChenSpungsShad,
MarkRgyaGramShad,
MarkCaretDashDzudRtagsMeLongCan,
MarkGterTsheg,
LogotypeSignChadRtags,
LogotypeSignLhagRtags,
AstrologicalSignSgraGcanDashCharRtags,
AstrologicalSignDashKhyudPa,
AstrologicalSignSdongTshugs,
SignRdelDkarGcig,
SignRdelDkarGnyis,
SignRdelDkarGsum,
SignRdelNagGcig,
SignRdelNagGnyis,
SignRdelDkarRdelNag,
DigitZero,
DigitOne,
DigitTwo,
DigitThree,
DigitFour,
DigitFive,
DigitSix,
DigitSeven,
DigitEight,
DigitNine,
DigitHalfOne,
DigitHalfTwo,
DigitHalfThree,
DigitHalfFour,
DigitHalfFive,
DigitHalfSix,
DigitHalfSeven,
DigitHalfEight,
DigitHalfNine,
DigitHalfZero,
MarkBsdusRtags,
MarkNgasBzungNyiZla,
MarkCaretDashDzudRtagsBzhiMigCan,
MarkNgasBzungSgorRtags,
MarkCheMgo,
MarkTsaDashPhru,
MarkGugRtagsGyon,
MarkGugRtagsGyas,
MarkAngKhangGyon,
MarkAngKhangGyas,
SignYarTshes,
SignMarTshes,
LetterKa,
LetterKha,
LetterGa,
LetterGha,
LetterNga,
LetterCa,
LetterCha,
LetterJa,
LetterNya,
LetterTta,
LetterTtha,
LetterDda,
LetterDdha,
LetterNna,
LetterTa,
LetterTha,
LetterDa,
LetterDha,
LetterNa,
LetterPa,
LetterPha,
LetterBa,
LetterBha,
LetterMa,
LetterTsa,
LetterTsha,
LetterDza,
LetterDzha,
LetterWa,
LetterZha,
LetterZa,
LetterDashA,
LetterYa,
LetterRa,
LetterLa,
LetterSha,
LetterSsa,
LetterSa,
LetterHa,
LetterA,
LetterKssa,
LetterFixedDashFormRa,
LetterKka,
LetterRra,
VowelSignAa,
VowelSignI,
VowelSignIi,
VowelSignU,
VowelSignUu,
VowelSignVocalicR,
VowelSignVocalicRr,
VowelSignVocalicL,
VowelSignVocalicLl,
VowelSignE,
VowelSignEe,
VowelSignO,
VowelSignOo,
SignRjesSuNgaRo,
SignRnamBcad,
VowelSignReversedI,
VowelSignReversedIi,
SignNyiZlaNaaDa,
SignSnaLdan,
MarkHalanta,
MarkPaluta,
SignLciRtags,
SignYangRtags,
SignLceTsaCan,
SignMchuCan,
SignGruCanRgyings,
SignGruMedRgyings,
SignInvertedMchuCan,
SubjoinedSignLceTsaCan,
SubjoinedSignMchuCan,
SubjoinedSignInvertedMchuCan,
SubjoinedLetterKa,
SubjoinedLetterKha,
SubjoinedLetterGa,
SubjoinedLetterGha,
SubjoinedLetterNga,
SubjoinedLetterCa,
SubjoinedLetterCha,
SubjoinedLetterJa,
SubjoinedLetterNya,
SubjoinedLetterTta,
SubjoinedLetterTtha,
SubjoinedLetterDda,
SubjoinedLetterDdha,
SubjoinedLetterNna,
SubjoinedLetterTa,
SubjoinedLetterTha,
SubjoinedLetterDa,
SubjoinedLetterDha,
SubjoinedLetterNa,
SubjoinedLetterPa,
SubjoinedLetterPha,
SubjoinedLetterBa,
SubjoinedLetterBha,
SubjoinedLetterMa,
SubjoinedLetterTsa,
SubjoinedLetterTsha,
SubjoinedLetterDza,
SubjoinedLetterDzha,
SubjoinedLetterWa,
SubjoinedLetterZha,
SubjoinedLetterZa,
SubjoinedLetterDashA,
SubjoinedLetterYa,
SubjoinedLetterRa,
SubjoinedLetterLa,
SubjoinedLetterSha,
SubjoinedLetterSsa,
SubjoinedLetterSa,
SubjoinedLetterHa,
SubjoinedLetterA,
SubjoinedLetterKssa,
SubjoinedLetterFixedDashFormWa,
SubjoinedLetterFixedDashFormYa,
SubjoinedLetterFixedDashFormRa,
KuRuKha,
KuRuKhaBzhiMigCan,
CantillationSignHeavyBeat,
CantillationSignLightBeat,
CantillationSignCangTeDashU,
CantillationSignSbubDashChal,
SymbolDrilBu,
SymbolRdoRje,
SymbolPadmaGdan,
SymbolRdoRjeRgyaGram,
SymbolPhurPa,
SymbolNorBu,
SymbolNorBuNyisDashKhyil,
SymbolNorBuGsumDashKhyil,
SymbolNorBuBzhiDashKhyil,
SignRdelNagRdelDkar,
SignRdelNagGsum,
MarkBskaDashShogGiMgoRgyan,
MarkMnyamYigGiMgoRgyan,
MarkNyisTsheg,
MarkInitialBrdaRnyingYigMgoMdunMa,
MarkClosingBrdaRnyingYigMgoSgabMa,
RightDashFacingSvastiSign,
LeftDashFacingSvastiSign,
RightDashFacingSvastiSignWithDots,
LeftDashFacingSvastiSignWithDots,
MarkLeadingMchanRtags,
MarkTrailingMchanRtags,
}
impl Into<char> for Tibetan {
fn into(self) -> char {
match self {
Tibetan::SyllableOm => 'ༀ',
Tibetan::MarkGterYigMgoTruncatedA => '༁',
Tibetan::MarkGterYigMgoDashUmRnamBcadMa => '༂',
Tibetan::MarkGterYigMgoDashUmGterTshegMa => '༃',
Tibetan::MarkInitialYigMgoMdunMa => '༄',
Tibetan::MarkClosingYigMgoSgabMa => '༅',
Tibetan::MarkCaretYigMgoPhurShadMa => '༆',
Tibetan::MarkYigMgoTshegShadMa => '༇',
Tibetan::MarkSbrulShad => '༈',
Tibetan::MarkBskurYigMgo => '༉',
Tibetan::MarkBkaDashShogYigMgo => '༊',
Tibetan::MarkIntersyllabicTsheg => '་',
Tibetan::MarkDelimiterTshegBstar => '༌',
Tibetan::MarkShad => '།',
Tibetan::MarkNyisShad => '༎',
Tibetan::MarkTshegShad => '༏',
Tibetan::MarkNyisTshegShad => '༐',
Tibetan::MarkRinChenSpungsShad => '༑',
Tibetan::MarkRgyaGramShad => '༒',
Tibetan::MarkCaretDashDzudRtagsMeLongCan => '༓',
Tibetan::MarkGterTsheg => '༔',
Tibetan::LogotypeSignChadRtags => '༕',
Tibetan::LogotypeSignLhagRtags => '༖',
Tibetan::AstrologicalSignSgraGcanDashCharRtags => '༗',
Tibetan::AstrologicalSignDashKhyudPa => '༘',
Tibetan::AstrologicalSignSdongTshugs => '༙',
Tibetan::SignRdelDkarGcig => '༚',
Tibetan::SignRdelDkarGnyis => '༛',
Tibetan::SignRdelDkarGsum => '༜',
Tibetan::SignRdelNagGcig => '༝',
Tibetan::SignRdelNagGnyis => '༞',
Tibetan::SignRdelDkarRdelNag => '༟',
Tibetan::DigitZero => '༠',
Tibetan::DigitOne => '༡',
Tibetan::DigitTwo => '༢',
Tibetan::DigitThree => '༣',
Tibetan::DigitFour => '༤',
Tibetan::DigitFive => '༥',
Tibetan::DigitSix => '༦',
Tibetan::DigitSeven => '༧',
Tibetan::DigitEight => '༨',
Tibetan::DigitNine => '༩',
Tibetan::DigitHalfOne => '༪',
Tibetan::DigitHalfTwo => '༫',
Tibetan::DigitHalfThree => '༬',
Tibetan::DigitHalfFour => '༭',
Tibetan::DigitHalfFive => '༮',
Tibetan::DigitHalfSix => '༯',
Tibetan::DigitHalfSeven => '༰',
Tibetan::DigitHalfEight => '༱',
Tibetan::DigitHalfNine => '༲',
Tibetan::DigitHalfZero => '༳',
Tibetan::MarkBsdusRtags => '༴',
Tibetan::MarkNgasBzungNyiZla => '༵',
Tibetan::MarkCaretDashDzudRtagsBzhiMigCan => '༶',
Tibetan::MarkNgasBzungSgorRtags => '༷',
Tibetan::MarkCheMgo => '༸',
Tibetan::MarkTsaDashPhru => '༹',
Tibetan::MarkGugRtagsGyon => '༺',
Tibetan::MarkGugRtagsGyas => '༻',
Tibetan::MarkAngKhangGyon => '༼',
Tibetan::MarkAngKhangGyas => '༽',
Tibetan::SignYarTshes => '༾',
Tibetan::SignMarTshes => '༿',
Tibetan::LetterKa => 'ཀ',
Tibetan::LetterKha => 'ཁ',
Tibetan::LetterGa => 'ག',
Tibetan::LetterGha => 'གྷ',
Tibetan::LetterNga => 'ང',
Tibetan::LetterCa => 'ཅ',
Tibetan::LetterCha => 'ཆ',
Tibetan::LetterJa => 'ཇ',
Tibetan::LetterNya => 'ཉ',
Tibetan::LetterTta => 'ཊ',
Tibetan::LetterTtha => 'ཋ',
Tibetan::LetterDda => 'ཌ',
Tibetan::LetterDdha => 'ཌྷ',
Tibetan::LetterNna => 'ཎ',
Tibetan::LetterTa => 'ཏ',
Tibetan::LetterTha => 'ཐ',
Tibetan::LetterDa => 'ད',
Tibetan::LetterDha => 'དྷ',
Tibetan::LetterNa => 'ན',
Tibetan::LetterPa => 'པ',
Tibetan::LetterPha => 'ཕ',
Tibetan::LetterBa => 'བ',
Tibetan::LetterBha => 'བྷ',
Tibetan::LetterMa => 'མ',
Tibetan::LetterTsa => 'ཙ',
Tibetan::LetterTsha => 'ཚ',
Tibetan::LetterDza => 'ཛ',
Tibetan::LetterDzha => 'ཛྷ',
Tibetan::LetterWa => 'ཝ',
Tibetan::LetterZha => 'ཞ',
Tibetan::LetterZa => 'ཟ',
Tibetan::LetterDashA => 'འ',
Tibetan::LetterYa => 'ཡ',
Tibetan::LetterRa => 'ར',
Tibetan::LetterLa => 'ལ',
Tibetan::LetterSha => 'ཤ',
Tibetan::LetterSsa => 'ཥ',
Tibetan::LetterSa => 'ས',
Tibetan::LetterHa => 'ཧ',
Tibetan::LetterA => 'ཨ',
Tibetan::LetterKssa => 'ཀྵ',
Tibetan::LetterFixedDashFormRa => 'ཪ',
Tibetan::LetterKka => 'ཫ',
Tibetan::LetterRra => 'ཬ',
Tibetan::VowelSignAa => 'ཱ',
Tibetan::VowelSignI => 'ི',
Tibetan::VowelSignIi => 'ཱི',
Tibetan::VowelSignU => 'ུ',
Tibetan::VowelSignUu => 'ཱུ',
Tibetan::VowelSignVocalicR => 'ྲྀ',
Tibetan::VowelSignVocalicRr => 'ཷ',
Tibetan::VowelSignVocalicL => 'ླྀ',
Tibetan::VowelSignVocalicLl => 'ཹ',
Tibetan::VowelSignE => 'ེ',
Tibetan::VowelSignEe => 'ཻ',
Tibetan::VowelSignO => 'ོ',
Tibetan::VowelSignOo => 'ཽ',
Tibetan::SignRjesSuNgaRo => 'ཾ',
Tibetan::SignRnamBcad => 'ཿ',
Tibetan::VowelSignReversedI => 'ྀ',
Tibetan::VowelSignReversedIi => 'ཱྀ',
Tibetan::SignNyiZlaNaaDa => 'ྂ',
Tibetan::SignSnaLdan => 'ྃ',
Tibetan::MarkHalanta => '྄',
Tibetan::MarkPaluta => '྅',
Tibetan::SignLciRtags => '྆',
Tibetan::SignYangRtags => '྇',
Tibetan::SignLceTsaCan => 'ྈ',
Tibetan::SignMchuCan => 'ྉ',
Tibetan::SignGruCanRgyings => 'ྊ',
Tibetan::SignGruMedRgyings => 'ྋ',
Tibetan::SignInvertedMchuCan => 'ྌ',
Tibetan::SubjoinedSignLceTsaCan => 'ྍ',
Tibetan::SubjoinedSignMchuCan => 'ྎ',
Tibetan::SubjoinedSignInvertedMchuCan => 'ྏ',
Tibetan::SubjoinedLetterKa => 'ྐ',
Tibetan::SubjoinedLetterKha => 'ྑ',
Tibetan::SubjoinedLetterGa => 'ྒ',
Tibetan::SubjoinedLetterGha => 'ྒྷ',
Tibetan::SubjoinedLetterNga => 'ྔ',
Tibetan::SubjoinedLetterCa => 'ྕ',
Tibetan::SubjoinedLetterCha => 'ྖ',
Tibetan::SubjoinedLetterJa => 'ྗ',
Tibetan::SubjoinedLetterNya => 'ྙ',
Tibetan::SubjoinedLetterTta => 'ྚ',
Tibetan::SubjoinedLetterTtha => 'ྛ',
Tibetan::SubjoinedLetterDda => 'ྜ',
Tibetan::SubjoinedLetterDdha => 'ྜྷ',
Tibetan::SubjoinedLetterNna => 'ྞ',
Tibetan::SubjoinedLetterTa => 'ྟ',
Tibetan::SubjoinedLetterTha => 'ྠ',
Tibetan::SubjoinedLetterDa => 'ྡ',
Tibetan::SubjoinedLetterDha => 'ྡྷ',
Tibetan::SubjoinedLetterNa => 'ྣ',
Tibetan::SubjoinedLetterPa => 'ྤ',
Tibetan::SubjoinedLetterPha => 'ྥ',
Tibetan::SubjoinedLetterBa => 'ྦ',
Tibetan::SubjoinedLetterBha => 'ྦྷ',
Tibetan::SubjoinedLetterMa => 'ྨ',
Tibetan::SubjoinedLetterTsa => 'ྩ',
Tibetan::SubjoinedLetterTsha => 'ྪ',
Tibetan::SubjoinedLetterDza => 'ྫ',
Tibetan::SubjoinedLetterDzha => 'ྫྷ',
Tibetan::SubjoinedLetterWa => 'ྭ',
Tibetan::SubjoinedLetterZha => 'ྮ',
Tibetan::SubjoinedLetterZa => 'ྯ',
Tibetan::SubjoinedLetterDashA => 'ྰ',
Tibetan::SubjoinedLetterYa => 'ྱ',
Tibetan::SubjoinedLetterRa => 'ྲ',
Tibetan::SubjoinedLetterLa => 'ླ',
Tibetan::SubjoinedLetterSha => 'ྴ',
Tibetan::SubjoinedLetterSsa => 'ྵ',
Tibetan::SubjoinedLetterSa => 'ྶ',
Tibetan::SubjoinedLetterHa => 'ྷ',
Tibetan::SubjoinedLetterA => 'ྸ',
Tibetan::SubjoinedLetterKssa => 'ྐྵ',
Tibetan::SubjoinedLetterFixedDashFormWa => 'ྺ',
Tibetan::SubjoinedLetterFixedDashFormYa => 'ྻ',
Tibetan::SubjoinedLetterFixedDashFormRa => 'ྼ',
Tibetan::KuRuKha => '྾',
Tibetan::KuRuKhaBzhiMigCan => '྿',
Tibetan::CantillationSignHeavyBeat => '࿀',
Tibetan::CantillationSignLightBeat => '࿁',
Tibetan::CantillationSignCangTeDashU => '࿂',
Tibetan::CantillationSignSbubDashChal => '࿃',
Tibetan::SymbolDrilBu => '࿄',
Tibetan::SymbolRdoRje => '࿅',
Tibetan::SymbolPadmaGdan => '࿆',
Tibetan::SymbolRdoRjeRgyaGram => '࿇',
Tibetan::SymbolPhurPa => '࿈',
Tibetan::SymbolNorBu => '࿉',
Tibetan::SymbolNorBuNyisDashKhyil => '࿊',
Tibetan::SymbolNorBuGsumDashKhyil => '࿋',
Tibetan::SymbolNorBuBzhiDashKhyil => '࿌',
Tibetan::SignRdelNagRdelDkar => '࿎',
Tibetan::SignRdelNagGsum => '࿏',
Tibetan::MarkBskaDashShogGiMgoRgyan => '࿐',
Tibetan::MarkMnyamYigGiMgoRgyan => '࿑',
Tibetan::MarkNyisTsheg => '࿒',
Tibetan::MarkInitialBrdaRnyingYigMgoMdunMa => '࿓',
Tibetan::MarkClosingBrdaRnyingYigMgoSgabMa => '࿔',
Tibetan::RightDashFacingSvastiSign => '࿕',
Tibetan::LeftDashFacingSvastiSign => '࿖',
Tibetan::RightDashFacingSvastiSignWithDots => '࿗',
Tibetan::LeftDashFacingSvastiSignWithDots => '࿘',
Tibetan::MarkLeadingMchanRtags => '࿙',
Tibetan::MarkTrailingMchanRtags => '࿚',
}
}
}
impl std::convert::TryFrom<char> for Tibetan {
type Error = ();
fn try_from(c: char) -> Result<Self, Self::Error> {
match c {
'ༀ' => Ok(Tibetan::SyllableOm),
'༁' => Ok(Tibetan::MarkGterYigMgoTruncatedA),
'༂' => Ok(Tibetan::MarkGterYigMgoDashUmRnamBcadMa),
'༃' => Ok(Tibetan::MarkGterYigMgoDashUmGterTshegMa),
'༄' => Ok(Tibetan::MarkInitialYigMgoMdunMa),
'༅' => Ok(Tibetan::MarkClosingYigMgoSgabMa),
'༆' => Ok(Tibetan::MarkCaretYigMgoPhurShadMa),
'༇' => Ok(Tibetan::MarkYigMgoTshegShadMa),
'༈' => Ok(Tibetan::MarkSbrulShad),
'༉' => Ok(Tibetan::MarkBskurYigMgo),
'༊' => Ok(Tibetan::MarkBkaDashShogYigMgo),
'་' => Ok(Tibetan::MarkIntersyllabicTsheg),
'༌' => Ok(Tibetan::MarkDelimiterTshegBstar),
'།' => Ok(Tibetan::MarkShad),
'༎' => Ok(Tibetan::MarkNyisShad),
'༏' => Ok(Tibetan::MarkTshegShad),
'༐' => Ok(Tibetan::MarkNyisTshegShad),
'༑' => Ok(Tibetan::MarkRinChenSpungsShad),
'༒' => Ok(Tibetan::MarkRgyaGramShad),
'༓' => Ok(Tibetan::MarkCaretDashDzudRtagsMeLongCan),
'༔' => Ok(Tibetan::MarkGterTsheg),
'༕' => Ok(Tibetan::LogotypeSignChadRtags),
'༖' => Ok(Tibetan::LogotypeSignLhagRtags),
'༗' => Ok(Tibetan::AstrologicalSignSgraGcanDashCharRtags),
'༘' => Ok(Tibetan::AstrologicalSignDashKhyudPa),
'༙' => Ok(Tibetan::AstrologicalSignSdongTshugs),
'༚' => Ok(Tibetan::SignRdelDkarGcig),
'༛' => Ok(Tibetan::SignRdelDkarGnyis),
'༜' => Ok(Tibetan::SignRdelDkarGsum),
'༝' => Ok(Tibetan::SignRdelNagGcig),
'༞' => Ok(Tibetan::SignRdelNagGnyis),
'༟' => Ok(Tibetan::SignRdelDkarRdelNag),
'༠' => Ok(Tibetan::DigitZero),
'༡' => Ok(Tibetan::DigitOne),
'༢' => Ok(Tibetan::DigitTwo),
'༣' => Ok(Tibetan::DigitThree),
'༤' => Ok(Tibetan::DigitFour),
'༥' => Ok(Tibetan::DigitFive),
'༦' => Ok(Tibetan::DigitSix),
'༧' => Ok(Tibetan::DigitSeven),
'༨' => Ok(Tibetan::DigitEight),
'༩' => Ok(Tibetan::DigitNine),
'༪' => Ok(Tibetan::DigitHalfOne),
'༫' => Ok(Tibetan::DigitHalfTwo),
'༬' => Ok(Tibetan::DigitHalfThree),
'༭' => Ok(Tibetan::DigitHalfFour),
'༮' => Ok(Tibetan::DigitHalfFive),
'༯' => Ok(Tibetan::DigitHalfSix),
'༰' => Ok(Tibetan::DigitHalfSeven),
'༱' => Ok(Tibetan::DigitHalfEight),
'༲' => Ok(Tibetan::DigitHalfNine),
'༳' => Ok(Tibetan::DigitHalfZero),
'༴' => Ok(Tibetan::MarkBsdusRtags),
'༵' => Ok(Tibetan::MarkNgasBzungNyiZla),
'༶' => Ok(Tibetan::MarkCaretDashDzudRtagsBzhiMigCan),
'༷' => Ok(Tibetan::MarkNgasBzungSgorRtags),
'༸' => Ok(Tibetan::MarkCheMgo),
'༹' => Ok(Tibetan::MarkTsaDashPhru),
'༺' => Ok(Tibetan::MarkGugRtagsGyon),
'༻' => Ok(Tibetan::MarkGugRtagsGyas),
'༼' => Ok(Tibetan::MarkAngKhangGyon),
'༽' => Ok(Tibetan::MarkAngKhangGyas),
'༾' => Ok(Tibetan::SignYarTshes),
'༿' => Ok(Tibetan::SignMarTshes),
'ཀ' => Ok(Tibetan::LetterKa),
'ཁ' => Ok(Tibetan::LetterKha),
'ག' => Ok(Tibetan::LetterGa),
'གྷ' => Ok(Tibetan::LetterGha),
'ང' => Ok(Tibetan::LetterNga),
'ཅ' => Ok(Tibetan::LetterCa),
'ཆ' => Ok(Tibetan::LetterCha),
'ཇ' => Ok(Tibetan::LetterJa),
'ཉ' => Ok(Tibetan::LetterNya),
'ཊ' => Ok(Tibetan::LetterTta),
'ཋ' => Ok(Tibetan::LetterTtha),
'ཌ' => Ok(Tibetan::LetterDda),
'ཌྷ' => Ok(Tibetan::LetterDdha),
'ཎ' => Ok(Tibetan::LetterNna),
'ཏ' => Ok(Tibetan::LetterTa),
'ཐ' => Ok(Tibetan::LetterTha),
'ད' => Ok(Tibetan::LetterDa),
'དྷ' => Ok(Tibetan::LetterDha),
'ན' => Ok(Tibetan::LetterNa),
'པ' => Ok(Tibetan::LetterPa),
'ཕ' => Ok(Tibetan::LetterPha),
'བ' => Ok(Tibetan::LetterBa),
'བྷ' => Ok(Tibetan::LetterBha),
'མ' => Ok(Tibetan::LetterMa),
'ཙ' => Ok(Tibetan::LetterTsa),
'ཚ' => Ok(Tibetan::LetterTsha),
'ཛ' => Ok(Tibetan::LetterDza),
'ཛྷ' => Ok(Tibetan::LetterDzha),
'ཝ' => Ok(Tibetan::LetterWa),
'ཞ' => Ok(Tibetan::LetterZha),
'ཟ' => Ok(Tibetan::LetterZa),
'འ' => Ok(Tibetan::LetterDashA),
'ཡ' => Ok(Tibetan::LetterYa),
'ར' => Ok(Tibetan::LetterRa),
'ལ' => Ok(Tibetan::LetterLa),
'ཤ' => Ok(Tibetan::LetterSha),
'ཥ' => Ok(Tibetan::LetterSsa),
'ས' => Ok(Tibetan::LetterSa),
'ཧ' => Ok(Tibetan::LetterHa),
'ཨ' => Ok(Tibetan::LetterA),
'ཀྵ' => Ok(Tibetan::LetterKssa),
'ཪ' => Ok(Tibetan::LetterFixedDashFormRa),
'ཫ' => Ok(Tibetan::LetterKka),
'ཬ' => Ok(Tibetan::LetterRra),
'ཱ' => Ok(Tibetan::VowelSignAa),
'ི' => Ok(Tibetan::VowelSignI),
'ཱི' => Ok(Tibetan::VowelSignIi),
'ུ' => Ok(Tibetan::VowelSignU),
'ཱུ' => Ok(Tibetan::VowelSignUu),
'ྲྀ' => Ok(Tibetan::VowelSignVocalicR),
'ཷ' => Ok(Tibetan::VowelSignVocalicRr),
'ླྀ' => Ok(Tibetan::VowelSignVocalicL),
'ཹ' => Ok(Tibetan::VowelSignVocalicLl),
'ེ' => Ok(Tibetan::VowelSignE),
'ཻ' => Ok(Tibetan::VowelSignEe),
'ོ' => Ok(Tibetan::VowelSignO),
'ཽ' => Ok(Tibetan::VowelSignOo),
'ཾ' => Ok(Tibetan::SignRjesSuNgaRo),
'ཿ' => Ok(Tibetan::SignRnamBcad),
'ྀ' => Ok(Tibetan::VowelSignReversedI),
'ཱྀ' => Ok(Tibetan::VowelSignReversedIi),
'ྂ' => Ok(Tibetan::SignNyiZlaNaaDa),
'ྃ' => Ok(Tibetan::SignSnaLdan),
'྄' => Ok(Tibetan::MarkHalanta),
'྅' => Ok(Tibetan::MarkPaluta),
'྆' => Ok(Tibetan::SignLciRtags),
'྇' => Ok(Tibetan::SignYangRtags),
'ྈ' => Ok(Tibetan::SignLceTsaCan),
'ྉ' => Ok(Tibetan::SignMchuCan),
'ྊ' => Ok(Tibetan::SignGruCanRgyings),
'ྋ' => Ok(Tibetan::SignGruMedRgyings),
'ྌ' => Ok(Tibetan::SignInvertedMchuCan),
'ྍ' => Ok(Tibetan::SubjoinedSignLceTsaCan),
'ྎ' => Ok(Tibetan::SubjoinedSignMchuCan),
'ྏ' => Ok(Tibetan::SubjoinedSignInvertedMchuCan),
'ྐ' => Ok(Tibetan::SubjoinedLetterKa),
'ྑ' => Ok(Tibetan::SubjoinedLetterKha),
'ྒ' => Ok(Tibetan::SubjoinedLetterGa),
'ྒྷ' => Ok(Tibetan::SubjoinedLetterGha),
'ྔ' => Ok(Tibetan::SubjoinedLetterNga),
'ྕ' => Ok(Tibetan::SubjoinedLetterCa),
'ྖ' => Ok(Tibetan::SubjoinedLetterCha),
'ྗ' => Ok(Tibetan::SubjoinedLetterJa),
'ྙ' => Ok(Tibetan::SubjoinedLetterNya),
'ྚ' => Ok(Tibetan::SubjoinedLetterTta),
'ྛ' => Ok(Tibetan::SubjoinedLetterTtha),
'ྜ' => Ok(Tibetan::SubjoinedLetterDda),
'ྜྷ' => Ok(Tibetan::SubjoinedLetterDdha),
'ྞ' => Ok(Tibetan::SubjoinedLetterNna),
'ྟ' => Ok(Tibetan::SubjoinedLetterTa),
'ྠ' => Ok(Tibetan::SubjoinedLetterTha),
'ྡ' => Ok(Tibetan::SubjoinedLetterDa),
'ྡྷ' => Ok(Tibetan::SubjoinedLetterDha),
'ྣ' => Ok(Tibetan::SubjoinedLetterNa),
'ྤ' => Ok(Tibetan::SubjoinedLetterPa),
'ྥ' => Ok(Tibetan::SubjoinedLetterPha),
'ྦ' => Ok(Tibetan::SubjoinedLetterBa),
'ྦྷ' => Ok(Tibetan::SubjoinedLetterBha),
'ྨ' => Ok(Tibetan::SubjoinedLetterMa),
'ྩ' => Ok(Tibetan::SubjoinedLetterTsa),
'ྪ' => Ok(Tibetan::SubjoinedLetterTsha),
'ྫ' => Ok(Tibetan::SubjoinedLetterDza),
'ྫྷ' => Ok(Tibetan::SubjoinedLetterDzha),
'ྭ' => Ok(Tibetan::SubjoinedLetterWa),
'ྮ' => Ok(Tibetan::SubjoinedLetterZha),
'ྯ' => Ok(Tibetan::SubjoinedLetterZa),
'ྰ' => Ok(Tibetan::SubjoinedLetterDashA),
'ྱ' => Ok(Tibetan::SubjoinedLetterYa),
'ྲ' => Ok(Tibetan::SubjoinedLetterRa),
'ླ' => Ok(Tibetan::SubjoinedLetterLa),
'ྴ' => Ok(Tibetan::SubjoinedLetterSha),
'ྵ' => Ok(Tibetan::SubjoinedLetterSsa),
'ྶ' => Ok(Tibetan::SubjoinedLetterSa),
'ྷ' => Ok(Tibetan::SubjoinedLetterHa),
'ྸ' => Ok(Tibetan::SubjoinedLetterA),
'ྐྵ' => Ok(Tibetan::SubjoinedLetterKssa),
'ྺ' => Ok(Tibetan::SubjoinedLetterFixedDashFormWa),
'ྻ' => Ok(Tibetan::SubjoinedLetterFixedDashFormYa),
'ྼ' => Ok(Tibetan::SubjoinedLetterFixedDashFormRa),
'྾' => Ok(Tibetan::KuRuKha),
'྿' => Ok(Tibetan::KuRuKhaBzhiMigCan),
'࿀' => Ok(Tibetan::CantillationSignHeavyBeat),
'࿁' => Ok(Tibetan::CantillationSignLightBeat),
'࿂' => Ok(Tibetan::CantillationSignCangTeDashU),
'࿃' => Ok(Tibetan::CantillationSignSbubDashChal),
'࿄' => Ok(Tibetan::SymbolDrilBu),
'࿅' => Ok(Tibetan::SymbolRdoRje),
'࿆' => Ok(Tibetan::SymbolPadmaGdan),
'࿇' => Ok(Tibetan::SymbolRdoRjeRgyaGram),
'࿈' => Ok(Tibetan::SymbolPhurPa),
'࿉' => Ok(Tibetan::SymbolNorBu),
'࿊' => Ok(Tibetan::SymbolNorBuNyisDashKhyil),
'࿋' => Ok(Tibetan::SymbolNorBuGsumDashKhyil),
'࿌' => Ok(Tibetan::SymbolNorBuBzhiDashKhyil),
'࿎' => Ok(Tibetan::SignRdelNagRdelDkar),
'࿏' => Ok(Tibetan::SignRdelNagGsum),
'࿐' => Ok(Tibetan::MarkBskaDashShogGiMgoRgyan),
'࿑' => Ok(Tibetan::MarkMnyamYigGiMgoRgyan),
'࿒' => Ok(Tibetan::MarkNyisTsheg),
'࿓' => Ok(Tibetan::MarkInitialBrdaRnyingYigMgoMdunMa),
'࿔' => Ok(Tibetan::MarkClosingBrdaRnyingYigMgoSgabMa),
'࿕' => Ok(Tibetan::RightDashFacingSvastiSign),
'࿖' => Ok(Tibetan::LeftDashFacingSvastiSign),
'࿗' => Ok(Tibetan::RightDashFacingSvastiSignWithDots),
'࿘' => Ok(Tibetan::LeftDashFacingSvastiSignWithDots),
'࿙' => Ok(Tibetan::MarkLeadingMchanRtags),
'࿚' => Ok(Tibetan::MarkTrailingMchanRtags),
_ => Err(()),
}
}
}
impl Into<u32> for Tibetan {
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 Tibetan {
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 Tibetan {
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 Tibetan {
pub fn new() -> Self {
Tibetan::SyllableOm
}
pub fn name(&self) -> String {
let s = std::format!("Tibetan{:#?}", self);
string_morph::to_sentence_case(&s)
}
}