#[derive(Debug, Clone, Copy, Hash, PartialEq, Eq)]
pub enum Balinese {
SignUluRicem,
SignUluCandra,
SignCecek,
SignSurang,
SignBisah,
LetterAkara,
LetterAkaraTedung,
LetterIkara,
LetterIkaraTedung,
LetterUkara,
LetterUkaraTedung,
LetterRaRepa,
LetterRaRepaTedung,
LetterLaLenga,
LetterLaLengaTedung,
LetterEkara,
LetterAikara,
LetterOkara,
LetterOkaraTedung,
LetterKa,
LetterKaMahaprana,
LetterGa,
LetterGaGora,
LetterNga,
LetterCa,
LetterCaLaca,
LetterJa,
LetterJaJera,
LetterNya,
LetterTaLatik,
LetterTaMurdaMahaprana,
LetterDaMurdaAlpaprana,
LetterDaMurdaMahaprana,
LetterNaRambat,
LetterTa,
LetterTaTawa,
LetterDa,
LetterDaMadu,
LetterNa,
LetterPa,
LetterPaKapal,
LetterBa,
LetterBaKembang,
LetterMa,
LetterYa,
LetterRa,
LetterLa,
LetterWa,
LetterSaSaga,
LetterSaSapa,
LetterSa,
LetterHa,
SignRerekan,
VowelSignTedung,
VowelSignUlu,
VowelSignUluSari,
VowelSignSuku,
VowelSignSukuIlut,
VowelSignRaRepa,
VowelSignRaRepaTedung,
VowelSignLaLenga,
VowelSignLaLengaTedung,
VowelSignTaling,
VowelSignTalingRepa,
VowelSignTalingTedung,
VowelSignTalingRepaTedung,
VowelSignPepet,
VowelSignPepetTedung,
AdegAdeg,
LetterKafSasak,
LetterKhotSasak,
LetterTzirSasak,
LetterEfSasak,
LetterVeSasak,
LetterZalSasak,
LetterAsyuraSasak,
DigitZero,
DigitOne,
DigitTwo,
DigitThree,
DigitFour,
DigitFive,
DigitSix,
DigitSeven,
DigitEight,
DigitNine,
Panti,
Pamada,
Windu,
CarikPamungkah,
CarikSiki,
CarikPareren,
Pameneng,
MusicalSymbolDong,
MusicalSymbolDeng,
MusicalSymbolDung,
MusicalSymbolDang,
MusicalSymbolDangSurang,
MusicalSymbolDing,
MusicalSymbolDaeng,
MusicalSymbolDeung,
MusicalSymbolDaing,
MusicalSymbolDangGede,
MusicalSymbolCombiningTegeh,
MusicalSymbolCombiningEndep,
MusicalSymbolCombiningKempul,
MusicalSymbolCombiningKempli,
MusicalSymbolCombiningJegogan,
MusicalSymbolCombiningKempulWithJegogan,
MusicalSymbolCombiningKempliWithJegogan,
MusicalSymbolCombiningBende,
MusicalSymbolCombiningGong,
MusicalSymbolRightDashHandOpenDug,
MusicalSymbolRightDashHandOpenDag,
MusicalSymbolRightDashHandClosedTuk,
MusicalSymbolRightDashHandClosedTak,
MusicalSymbolLeftDashHandOpenPang,
MusicalSymbolLeftDashHandOpenPung,
MusicalSymbolLeftDashHandClosedPlak,
MusicalSymbolLeftDashHandClosedPluk,
MusicalSymbolLeftDashHandOpenPing,
}
impl Into<char> for Balinese {
fn into(self) -> char {
match self {
Balinese::SignUluRicem => 'ᬀ',
Balinese::SignUluCandra => 'ᬁ',
Balinese::SignCecek => 'ᬂ',
Balinese::SignSurang => 'ᬃ',
Balinese::SignBisah => 'ᬄ',
Balinese::LetterAkara => 'ᬅ',
Balinese::LetterAkaraTedung => 'ᬆ',
Balinese::LetterIkara => 'ᬇ',
Balinese::LetterIkaraTedung => 'ᬈ',
Balinese::LetterUkara => 'ᬉ',
Balinese::LetterUkaraTedung => 'ᬊ',
Balinese::LetterRaRepa => 'ᬋ',
Balinese::LetterRaRepaTedung => 'ᬌ',
Balinese::LetterLaLenga => 'ᬍ',
Balinese::LetterLaLengaTedung => 'ᬎ',
Balinese::LetterEkara => 'ᬏ',
Balinese::LetterAikara => 'ᬐ',
Balinese::LetterOkara => 'ᬑ',
Balinese::LetterOkaraTedung => 'ᬒ',
Balinese::LetterKa => 'ᬓ',
Balinese::LetterKaMahaprana => 'ᬔ',
Balinese::LetterGa => 'ᬕ',
Balinese::LetterGaGora => 'ᬖ',
Balinese::LetterNga => 'ᬗ',
Balinese::LetterCa => 'ᬘ',
Balinese::LetterCaLaca => 'ᬙ',
Balinese::LetterJa => 'ᬚ',
Balinese::LetterJaJera => 'ᬛ',
Balinese::LetterNya => 'ᬜ',
Balinese::LetterTaLatik => 'ᬝ',
Balinese::LetterTaMurdaMahaprana => 'ᬞ',
Balinese::LetterDaMurdaAlpaprana => 'ᬟ',
Balinese::LetterDaMurdaMahaprana => 'ᬠ',
Balinese::LetterNaRambat => 'ᬡ',
Balinese::LetterTa => 'ᬢ',
Balinese::LetterTaTawa => 'ᬣ',
Balinese::LetterDa => 'ᬤ',
Balinese::LetterDaMadu => 'ᬥ',
Balinese::LetterNa => 'ᬦ',
Balinese::LetterPa => 'ᬧ',
Balinese::LetterPaKapal => 'ᬨ',
Balinese::LetterBa => 'ᬩ',
Balinese::LetterBaKembang => 'ᬪ',
Balinese::LetterMa => 'ᬫ',
Balinese::LetterYa => 'ᬬ',
Balinese::LetterRa => 'ᬭ',
Balinese::LetterLa => 'ᬮ',
Balinese::LetterWa => 'ᬯ',
Balinese::LetterSaSaga => 'ᬰ',
Balinese::LetterSaSapa => 'ᬱ',
Balinese::LetterSa => 'ᬲ',
Balinese::LetterHa => 'ᬳ',
Balinese::SignRerekan => '᬴',
Balinese::VowelSignTedung => 'ᬵ',
Balinese::VowelSignUlu => 'ᬶ',
Balinese::VowelSignUluSari => 'ᬷ',
Balinese::VowelSignSuku => 'ᬸ',
Balinese::VowelSignSukuIlut => 'ᬹ',
Balinese::VowelSignRaRepa => 'ᬺ',
Balinese::VowelSignRaRepaTedung => 'ᬻ',
Balinese::VowelSignLaLenga => 'ᬼ',
Balinese::VowelSignLaLengaTedung => 'ᬽ',
Balinese::VowelSignTaling => 'ᬾ',
Balinese::VowelSignTalingRepa => 'ᬿ',
Balinese::VowelSignTalingTedung => 'ᭀ',
Balinese::VowelSignTalingRepaTedung => 'ᭁ',
Balinese::VowelSignPepet => 'ᭂ',
Balinese::VowelSignPepetTedung => 'ᭃ',
Balinese::AdegAdeg => '᭄',
Balinese::LetterKafSasak => 'ᭅ',
Balinese::LetterKhotSasak => 'ᭆ',
Balinese::LetterTzirSasak => 'ᭇ',
Balinese::LetterEfSasak => 'ᭈ',
Balinese::LetterVeSasak => 'ᭉ',
Balinese::LetterZalSasak => 'ᭊ',
Balinese::LetterAsyuraSasak => 'ᭋ',
Balinese::DigitZero => '᭐',
Balinese::DigitOne => '᭑',
Balinese::DigitTwo => '᭒',
Balinese::DigitThree => '᭓',
Balinese::DigitFour => '᭔',
Balinese::DigitFive => '᭕',
Balinese::DigitSix => '᭖',
Balinese::DigitSeven => '᭗',
Balinese::DigitEight => '᭘',
Balinese::DigitNine => '᭙',
Balinese::Panti => '᭚',
Balinese::Pamada => '᭛',
Balinese::Windu => '᭜',
Balinese::CarikPamungkah => '᭝',
Balinese::CarikSiki => '᭞',
Balinese::CarikPareren => '᭟',
Balinese::Pameneng => '᭠',
Balinese::MusicalSymbolDong => '᭡',
Balinese::MusicalSymbolDeng => '᭢',
Balinese::MusicalSymbolDung => '᭣',
Balinese::MusicalSymbolDang => '᭤',
Balinese::MusicalSymbolDangSurang => '᭥',
Balinese::MusicalSymbolDing => '᭦',
Balinese::MusicalSymbolDaeng => '᭧',
Balinese::MusicalSymbolDeung => '᭨',
Balinese::MusicalSymbolDaing => '᭩',
Balinese::MusicalSymbolDangGede => '᭪',
Balinese::MusicalSymbolCombiningTegeh => '᭫',
Balinese::MusicalSymbolCombiningEndep => '᭬',
Balinese::MusicalSymbolCombiningKempul => '᭭',
Balinese::MusicalSymbolCombiningKempli => '᭮',
Balinese::MusicalSymbolCombiningJegogan => '᭯',
Balinese::MusicalSymbolCombiningKempulWithJegogan => '᭰',
Balinese::MusicalSymbolCombiningKempliWithJegogan => '᭱',
Balinese::MusicalSymbolCombiningBende => '᭲',
Balinese::MusicalSymbolCombiningGong => '᭳',
Balinese::MusicalSymbolRightDashHandOpenDug => '᭴',
Balinese::MusicalSymbolRightDashHandOpenDag => '᭵',
Balinese::MusicalSymbolRightDashHandClosedTuk => '᭶',
Balinese::MusicalSymbolRightDashHandClosedTak => '᭷',
Balinese::MusicalSymbolLeftDashHandOpenPang => '᭸',
Balinese::MusicalSymbolLeftDashHandOpenPung => '᭹',
Balinese::MusicalSymbolLeftDashHandClosedPlak => '᭺',
Balinese::MusicalSymbolLeftDashHandClosedPluk => '᭻',
Balinese::MusicalSymbolLeftDashHandOpenPing => '᭼',
}
}
}
impl std::convert::TryFrom<char> for Balinese {
type Error = ();
fn try_from(c: char) -> Result<Self, Self::Error> {
match c {
'ᬀ' => Ok(Balinese::SignUluRicem),
'ᬁ' => Ok(Balinese::SignUluCandra),
'ᬂ' => Ok(Balinese::SignCecek),
'ᬃ' => Ok(Balinese::SignSurang),
'ᬄ' => Ok(Balinese::SignBisah),
'ᬅ' => Ok(Balinese::LetterAkara),
'ᬆ' => Ok(Balinese::LetterAkaraTedung),
'ᬇ' => Ok(Balinese::LetterIkara),
'ᬈ' => Ok(Balinese::LetterIkaraTedung),
'ᬉ' => Ok(Balinese::LetterUkara),
'ᬊ' => Ok(Balinese::LetterUkaraTedung),
'ᬋ' => Ok(Balinese::LetterRaRepa),
'ᬌ' => Ok(Balinese::LetterRaRepaTedung),
'ᬍ' => Ok(Balinese::LetterLaLenga),
'ᬎ' => Ok(Balinese::LetterLaLengaTedung),
'ᬏ' => Ok(Balinese::LetterEkara),
'ᬐ' => Ok(Balinese::LetterAikara),
'ᬑ' => Ok(Balinese::LetterOkara),
'ᬒ' => Ok(Balinese::LetterOkaraTedung),
'ᬓ' => Ok(Balinese::LetterKa),
'ᬔ' => Ok(Balinese::LetterKaMahaprana),
'ᬕ' => Ok(Balinese::LetterGa),
'ᬖ' => Ok(Balinese::LetterGaGora),
'ᬗ' => Ok(Balinese::LetterNga),
'ᬘ' => Ok(Balinese::LetterCa),
'ᬙ' => Ok(Balinese::LetterCaLaca),
'ᬚ' => Ok(Balinese::LetterJa),
'ᬛ' => Ok(Balinese::LetterJaJera),
'ᬜ' => Ok(Balinese::LetterNya),
'ᬝ' => Ok(Balinese::LetterTaLatik),
'ᬞ' => Ok(Balinese::LetterTaMurdaMahaprana),
'ᬟ' => Ok(Balinese::LetterDaMurdaAlpaprana),
'ᬠ' => Ok(Balinese::LetterDaMurdaMahaprana),
'ᬡ' => Ok(Balinese::LetterNaRambat),
'ᬢ' => Ok(Balinese::LetterTa),
'ᬣ' => Ok(Balinese::LetterTaTawa),
'ᬤ' => Ok(Balinese::LetterDa),
'ᬥ' => Ok(Balinese::LetterDaMadu),
'ᬦ' => Ok(Balinese::LetterNa),
'ᬧ' => Ok(Balinese::LetterPa),
'ᬨ' => Ok(Balinese::LetterPaKapal),
'ᬩ' => Ok(Balinese::LetterBa),
'ᬪ' => Ok(Balinese::LetterBaKembang),
'ᬫ' => Ok(Balinese::LetterMa),
'ᬬ' => Ok(Balinese::LetterYa),
'ᬭ' => Ok(Balinese::LetterRa),
'ᬮ' => Ok(Balinese::LetterLa),
'ᬯ' => Ok(Balinese::LetterWa),
'ᬰ' => Ok(Balinese::LetterSaSaga),
'ᬱ' => Ok(Balinese::LetterSaSapa),
'ᬲ' => Ok(Balinese::LetterSa),
'ᬳ' => Ok(Balinese::LetterHa),
'᬴' => Ok(Balinese::SignRerekan),
'ᬵ' => Ok(Balinese::VowelSignTedung),
'ᬶ' => Ok(Balinese::VowelSignUlu),
'ᬷ' => Ok(Balinese::VowelSignUluSari),
'ᬸ' => Ok(Balinese::VowelSignSuku),
'ᬹ' => Ok(Balinese::VowelSignSukuIlut),
'ᬺ' => Ok(Balinese::VowelSignRaRepa),
'ᬻ' => Ok(Balinese::VowelSignRaRepaTedung),
'ᬼ' => Ok(Balinese::VowelSignLaLenga),
'ᬽ' => Ok(Balinese::VowelSignLaLengaTedung),
'ᬾ' => Ok(Balinese::VowelSignTaling),
'ᬿ' => Ok(Balinese::VowelSignTalingRepa),
'ᭀ' => Ok(Balinese::VowelSignTalingTedung),
'ᭁ' => Ok(Balinese::VowelSignTalingRepaTedung),
'ᭂ' => Ok(Balinese::VowelSignPepet),
'ᭃ' => Ok(Balinese::VowelSignPepetTedung),
'᭄' => Ok(Balinese::AdegAdeg),
'ᭅ' => Ok(Balinese::LetterKafSasak),
'ᭆ' => Ok(Balinese::LetterKhotSasak),
'ᭇ' => Ok(Balinese::LetterTzirSasak),
'ᭈ' => Ok(Balinese::LetterEfSasak),
'ᭉ' => Ok(Balinese::LetterVeSasak),
'ᭊ' => Ok(Balinese::LetterZalSasak),
'ᭋ' => Ok(Balinese::LetterAsyuraSasak),
'᭐' => Ok(Balinese::DigitZero),
'᭑' => Ok(Balinese::DigitOne),
'᭒' => Ok(Balinese::DigitTwo),
'᭓' => Ok(Balinese::DigitThree),
'᭔' => Ok(Balinese::DigitFour),
'᭕' => Ok(Balinese::DigitFive),
'᭖' => Ok(Balinese::DigitSix),
'᭗' => Ok(Balinese::DigitSeven),
'᭘' => Ok(Balinese::DigitEight),
'᭙' => Ok(Balinese::DigitNine),
'᭚' => Ok(Balinese::Panti),
'᭛' => Ok(Balinese::Pamada),
'᭜' => Ok(Balinese::Windu),
'᭝' => Ok(Balinese::CarikPamungkah),
'᭞' => Ok(Balinese::CarikSiki),
'᭟' => Ok(Balinese::CarikPareren),
'᭠' => Ok(Balinese::Pameneng),
'᭡' => Ok(Balinese::MusicalSymbolDong),
'᭢' => Ok(Balinese::MusicalSymbolDeng),
'᭣' => Ok(Balinese::MusicalSymbolDung),
'᭤' => Ok(Balinese::MusicalSymbolDang),
'᭥' => Ok(Balinese::MusicalSymbolDangSurang),
'᭦' => Ok(Balinese::MusicalSymbolDing),
'᭧' => Ok(Balinese::MusicalSymbolDaeng),
'᭨' => Ok(Balinese::MusicalSymbolDeung),
'᭩' => Ok(Balinese::MusicalSymbolDaing),
'᭪' => Ok(Balinese::MusicalSymbolDangGede),
'᭫' => Ok(Balinese::MusicalSymbolCombiningTegeh),
'᭬' => Ok(Balinese::MusicalSymbolCombiningEndep),
'᭭' => Ok(Balinese::MusicalSymbolCombiningKempul),
'᭮' => Ok(Balinese::MusicalSymbolCombiningKempli),
'᭯' => Ok(Balinese::MusicalSymbolCombiningJegogan),
'᭰' => Ok(Balinese::MusicalSymbolCombiningKempulWithJegogan),
'᭱' => Ok(Balinese::MusicalSymbolCombiningKempliWithJegogan),
'᭲' => Ok(Balinese::MusicalSymbolCombiningBende),
'᭳' => Ok(Balinese::MusicalSymbolCombiningGong),
'᭴' => Ok(Balinese::MusicalSymbolRightDashHandOpenDug),
'᭵' => Ok(Balinese::MusicalSymbolRightDashHandOpenDag),
'᭶' => Ok(Balinese::MusicalSymbolRightDashHandClosedTuk),
'᭷' => Ok(Balinese::MusicalSymbolRightDashHandClosedTak),
'᭸' => Ok(Balinese::MusicalSymbolLeftDashHandOpenPang),
'᭹' => Ok(Balinese::MusicalSymbolLeftDashHandOpenPung),
'᭺' => Ok(Balinese::MusicalSymbolLeftDashHandClosedPlak),
'᭻' => Ok(Balinese::MusicalSymbolLeftDashHandClosedPluk),
'᭼' => Ok(Balinese::MusicalSymbolLeftDashHandOpenPing),
_ => Err(()),
}
}
}
impl Into<u32> for Balinese {
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 Balinese {
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 Balinese {
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 Balinese {
pub fn new() -> Self {
Balinese::SignUluRicem
}
pub fn name(&self) -> String {
let s = std::format!("Balinese{:#?}", self);
string_morph::to_sentence_case(&s)
}
}