mod constants {
pub const KHMER_SYMBOL_PATHAMASAT: char = '᧠';
pub const KHMER_SYMBOL_MUOY_KOET: char = '᧡';
pub const KHMER_SYMBOL_PII_KOET: char = '᧢';
pub const KHMER_SYMBOL_BEI_KOET: char = '᧣';
pub const KHMER_SYMBOL_BUON_KOET: char = '᧤';
pub const KHMER_SYMBOL_PRAM_KOET: char = '᧥';
pub const KHMER_SYMBOL_PRAM_DASH_MUOY_KOET: char = '᧦';
pub const KHMER_SYMBOL_PRAM_DASH_PII_KOET: char = '᧧';
pub const KHMER_SYMBOL_PRAM_DASH_BEI_KOET: char = '᧨';
pub const KHMER_SYMBOL_PRAM_DASH_BUON_KOET: char = '᧩';
pub const KHMER_SYMBOL_DAP_KOET: char = '᧪';
pub const KHMER_SYMBOL_DAP_DASH_MUOY_KOET: char = '᧫';
pub const KHMER_SYMBOL_DAP_DASH_PII_KOET: char = '᧬';
pub const KHMER_SYMBOL_DAP_DASH_BEI_KOET: char = '᧭';
pub const KHMER_SYMBOL_DAP_DASH_BUON_KOET: char = '᧮';
pub const KHMER_SYMBOL_DAP_DASH_PRAM_KOET: char = '᧯';
pub const KHMER_SYMBOL_TUTEYASAT: char = '᧰';
pub const KHMER_SYMBOL_MUOY_ROC: char = '᧱';
pub const KHMER_SYMBOL_PII_ROC: char = '᧲';
pub const KHMER_SYMBOL_BEI_ROC: char = '᧳';
pub const KHMER_SYMBOL_BUON_ROC: char = '᧴';
pub const KHMER_SYMBOL_PRAM_ROC: char = '᧵';
pub const KHMER_SYMBOL_PRAM_DASH_MUOY_ROC: char = '᧶';
pub const KHMER_SYMBOL_PRAM_DASH_PII_ROC: char = '᧷';
pub const KHMER_SYMBOL_PRAM_DASH_BEI_ROC: char = '᧸';
pub const KHMER_SYMBOL_PRAM_DASH_BUON_ROC: char = '᧹';
pub const KHMER_SYMBOL_DAP_ROC: char = '᧺';
pub const KHMER_SYMBOL_DAP_DASH_MUOY_ROC: char = '᧻';
pub const KHMER_SYMBOL_DAP_DASH_PII_ROC: char = '᧼';
pub const KHMER_SYMBOL_DAP_DASH_BEI_ROC: char = '᧽';
pub const KHMER_SYMBOL_DAP_DASH_BUON_ROC: char = '᧾';
}
#[derive(Debug, Clone, Copy, Hash, PartialEq, Eq)]
pub enum KhmerSymbols {
KhmerSymbolPathamasat,
KhmerSymbolMuoyKoet,
KhmerSymbolPiiKoet,
KhmerSymbolBeiKoet,
KhmerSymbolBuonKoet,
KhmerSymbolPramKoet,
KhmerSymbolPramDashMuoyKoet,
KhmerSymbolPramDashPiiKoet,
KhmerSymbolPramDashBeiKoet,
KhmerSymbolPramDashBuonKoet,
KhmerSymbolDapKoet,
KhmerSymbolDapDashMuoyKoet,
KhmerSymbolDapDashPiiKoet,
KhmerSymbolDapDashBeiKoet,
KhmerSymbolDapDashBuonKoet,
KhmerSymbolDapDashPramKoet,
KhmerSymbolTuteyasat,
KhmerSymbolMuoyRoc,
KhmerSymbolPiiRoc,
KhmerSymbolBeiRoc,
KhmerSymbolBuonRoc,
KhmerSymbolPramRoc,
KhmerSymbolPramDashMuoyRoc,
KhmerSymbolPramDashPiiRoc,
KhmerSymbolPramDashBeiRoc,
KhmerSymbolPramDashBuonRoc,
KhmerSymbolDapRoc,
KhmerSymbolDapDashMuoyRoc,
KhmerSymbolDapDashPiiRoc,
KhmerSymbolDapDashBeiRoc,
KhmerSymbolDapDashBuonRoc,
}
impl Into<char> for KhmerSymbols {
fn into(self) -> char {
use constants::*;
match self {
KhmerSymbols::KhmerSymbolPathamasat => KHMER_SYMBOL_PATHAMASAT,
KhmerSymbols::KhmerSymbolMuoyKoet => KHMER_SYMBOL_MUOY_KOET,
KhmerSymbols::KhmerSymbolPiiKoet => KHMER_SYMBOL_PII_KOET,
KhmerSymbols::KhmerSymbolBeiKoet => KHMER_SYMBOL_BEI_KOET,
KhmerSymbols::KhmerSymbolBuonKoet => KHMER_SYMBOL_BUON_KOET,
KhmerSymbols::KhmerSymbolPramKoet => KHMER_SYMBOL_PRAM_KOET,
KhmerSymbols::KhmerSymbolPramDashMuoyKoet => KHMER_SYMBOL_PRAM_DASH_MUOY_KOET,
KhmerSymbols::KhmerSymbolPramDashPiiKoet => KHMER_SYMBOL_PRAM_DASH_PII_KOET,
KhmerSymbols::KhmerSymbolPramDashBeiKoet => KHMER_SYMBOL_PRAM_DASH_BEI_KOET,
KhmerSymbols::KhmerSymbolPramDashBuonKoet => KHMER_SYMBOL_PRAM_DASH_BUON_KOET,
KhmerSymbols::KhmerSymbolDapKoet => KHMER_SYMBOL_DAP_KOET,
KhmerSymbols::KhmerSymbolDapDashMuoyKoet => KHMER_SYMBOL_DAP_DASH_MUOY_KOET,
KhmerSymbols::KhmerSymbolDapDashPiiKoet => KHMER_SYMBOL_DAP_DASH_PII_KOET,
KhmerSymbols::KhmerSymbolDapDashBeiKoet => KHMER_SYMBOL_DAP_DASH_BEI_KOET,
KhmerSymbols::KhmerSymbolDapDashBuonKoet => KHMER_SYMBOL_DAP_DASH_BUON_KOET,
KhmerSymbols::KhmerSymbolDapDashPramKoet => KHMER_SYMBOL_DAP_DASH_PRAM_KOET,
KhmerSymbols::KhmerSymbolTuteyasat => KHMER_SYMBOL_TUTEYASAT,
KhmerSymbols::KhmerSymbolMuoyRoc => KHMER_SYMBOL_MUOY_ROC,
KhmerSymbols::KhmerSymbolPiiRoc => KHMER_SYMBOL_PII_ROC,
KhmerSymbols::KhmerSymbolBeiRoc => KHMER_SYMBOL_BEI_ROC,
KhmerSymbols::KhmerSymbolBuonRoc => KHMER_SYMBOL_BUON_ROC,
KhmerSymbols::KhmerSymbolPramRoc => KHMER_SYMBOL_PRAM_ROC,
KhmerSymbols::KhmerSymbolPramDashMuoyRoc => KHMER_SYMBOL_PRAM_DASH_MUOY_ROC,
KhmerSymbols::KhmerSymbolPramDashPiiRoc => KHMER_SYMBOL_PRAM_DASH_PII_ROC,
KhmerSymbols::KhmerSymbolPramDashBeiRoc => KHMER_SYMBOL_PRAM_DASH_BEI_ROC,
KhmerSymbols::KhmerSymbolPramDashBuonRoc => KHMER_SYMBOL_PRAM_DASH_BUON_ROC,
KhmerSymbols::KhmerSymbolDapRoc => KHMER_SYMBOL_DAP_ROC,
KhmerSymbols::KhmerSymbolDapDashMuoyRoc => KHMER_SYMBOL_DAP_DASH_MUOY_ROC,
KhmerSymbols::KhmerSymbolDapDashPiiRoc => KHMER_SYMBOL_DAP_DASH_PII_ROC,
KhmerSymbols::KhmerSymbolDapDashBeiRoc => KHMER_SYMBOL_DAP_DASH_BEI_ROC,
KhmerSymbols::KhmerSymbolDapDashBuonRoc => KHMER_SYMBOL_DAP_DASH_BUON_ROC,
}
}
}
impl std::convert::TryFrom<char> for KhmerSymbols {
type Error = ();
fn try_from(c: char) -> Result<Self, Self::Error> {
use constants::*;
match c {
KHMER_SYMBOL_PATHAMASAT => Ok(KhmerSymbols::KhmerSymbolPathamasat),
KHMER_SYMBOL_MUOY_KOET => Ok(KhmerSymbols::KhmerSymbolMuoyKoet),
KHMER_SYMBOL_PII_KOET => Ok(KhmerSymbols::KhmerSymbolPiiKoet),
KHMER_SYMBOL_BEI_KOET => Ok(KhmerSymbols::KhmerSymbolBeiKoet),
KHMER_SYMBOL_BUON_KOET => Ok(KhmerSymbols::KhmerSymbolBuonKoet),
KHMER_SYMBOL_PRAM_KOET => Ok(KhmerSymbols::KhmerSymbolPramKoet),
KHMER_SYMBOL_PRAM_DASH_MUOY_KOET => Ok(KhmerSymbols::KhmerSymbolPramDashMuoyKoet),
KHMER_SYMBOL_PRAM_DASH_PII_KOET => Ok(KhmerSymbols::KhmerSymbolPramDashPiiKoet),
KHMER_SYMBOL_PRAM_DASH_BEI_KOET => Ok(KhmerSymbols::KhmerSymbolPramDashBeiKoet),
KHMER_SYMBOL_PRAM_DASH_BUON_KOET => Ok(KhmerSymbols::KhmerSymbolPramDashBuonKoet),
KHMER_SYMBOL_DAP_KOET => Ok(KhmerSymbols::KhmerSymbolDapKoet),
KHMER_SYMBOL_DAP_DASH_MUOY_KOET => Ok(KhmerSymbols::KhmerSymbolDapDashMuoyKoet),
KHMER_SYMBOL_DAP_DASH_PII_KOET => Ok(KhmerSymbols::KhmerSymbolDapDashPiiKoet),
KHMER_SYMBOL_DAP_DASH_BEI_KOET => Ok(KhmerSymbols::KhmerSymbolDapDashBeiKoet),
KHMER_SYMBOL_DAP_DASH_BUON_KOET => Ok(KhmerSymbols::KhmerSymbolDapDashBuonKoet),
KHMER_SYMBOL_DAP_DASH_PRAM_KOET => Ok(KhmerSymbols::KhmerSymbolDapDashPramKoet),
KHMER_SYMBOL_TUTEYASAT => Ok(KhmerSymbols::KhmerSymbolTuteyasat),
KHMER_SYMBOL_MUOY_ROC => Ok(KhmerSymbols::KhmerSymbolMuoyRoc),
KHMER_SYMBOL_PII_ROC => Ok(KhmerSymbols::KhmerSymbolPiiRoc),
KHMER_SYMBOL_BEI_ROC => Ok(KhmerSymbols::KhmerSymbolBeiRoc),
KHMER_SYMBOL_BUON_ROC => Ok(KhmerSymbols::KhmerSymbolBuonRoc),
KHMER_SYMBOL_PRAM_ROC => Ok(KhmerSymbols::KhmerSymbolPramRoc),
KHMER_SYMBOL_PRAM_DASH_MUOY_ROC => Ok(KhmerSymbols::KhmerSymbolPramDashMuoyRoc),
KHMER_SYMBOL_PRAM_DASH_PII_ROC => Ok(KhmerSymbols::KhmerSymbolPramDashPiiRoc),
KHMER_SYMBOL_PRAM_DASH_BEI_ROC => Ok(KhmerSymbols::KhmerSymbolPramDashBeiRoc),
KHMER_SYMBOL_PRAM_DASH_BUON_ROC => Ok(KhmerSymbols::KhmerSymbolPramDashBuonRoc),
KHMER_SYMBOL_DAP_ROC => Ok(KhmerSymbols::KhmerSymbolDapRoc),
KHMER_SYMBOL_DAP_DASH_MUOY_ROC => Ok(KhmerSymbols::KhmerSymbolDapDashMuoyRoc),
KHMER_SYMBOL_DAP_DASH_PII_ROC => Ok(KhmerSymbols::KhmerSymbolDapDashPiiRoc),
KHMER_SYMBOL_DAP_DASH_BEI_ROC => Ok(KhmerSymbols::KhmerSymbolDapDashBeiRoc),
KHMER_SYMBOL_DAP_DASH_BUON_ROC => Ok(KhmerSymbols::KhmerSymbolDapDashBuonRoc),
_ => Err(()),
}
}
}
impl Into<u32> for KhmerSymbols {
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 KhmerSymbols {
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 KhmerSymbols {
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 KhmerSymbols {
pub fn new() -> Self {
KhmerSymbols::KhmerSymbolPathamasat
}
pub fn name(&self) -> &str {
match self {
KhmerSymbols::KhmerSymbolPathamasat => "khmer symbol pathamasat",
KhmerSymbols::KhmerSymbolMuoyKoet => "khmer symbol muoy koet",
KhmerSymbols::KhmerSymbolPiiKoet => "khmer symbol pii koet",
KhmerSymbols::KhmerSymbolBeiKoet => "khmer symbol bei koet",
KhmerSymbols::KhmerSymbolBuonKoet => "khmer symbol buon koet",
KhmerSymbols::KhmerSymbolPramKoet => "khmer symbol pram koet",
KhmerSymbols::KhmerSymbolPramDashMuoyKoet => "khmer symbol pram-muoy koet",
KhmerSymbols::KhmerSymbolPramDashPiiKoet => "khmer symbol pram-pii koet",
KhmerSymbols::KhmerSymbolPramDashBeiKoet => "khmer symbol pram-bei koet",
KhmerSymbols::KhmerSymbolPramDashBuonKoet => "khmer symbol pram-buon koet",
KhmerSymbols::KhmerSymbolDapKoet => "khmer symbol dap koet",
KhmerSymbols::KhmerSymbolDapDashMuoyKoet => "khmer symbol dap-muoy koet",
KhmerSymbols::KhmerSymbolDapDashPiiKoet => "khmer symbol dap-pii koet",
KhmerSymbols::KhmerSymbolDapDashBeiKoet => "khmer symbol dap-bei koet",
KhmerSymbols::KhmerSymbolDapDashBuonKoet => "khmer symbol dap-buon koet",
KhmerSymbols::KhmerSymbolDapDashPramKoet => "khmer symbol dap-pram koet",
KhmerSymbols::KhmerSymbolTuteyasat => "khmer symbol tuteyasat",
KhmerSymbols::KhmerSymbolMuoyRoc => "khmer symbol muoy roc",
KhmerSymbols::KhmerSymbolPiiRoc => "khmer symbol pii roc",
KhmerSymbols::KhmerSymbolBeiRoc => "khmer symbol bei roc",
KhmerSymbols::KhmerSymbolBuonRoc => "khmer symbol buon roc",
KhmerSymbols::KhmerSymbolPramRoc => "khmer symbol pram roc",
KhmerSymbols::KhmerSymbolPramDashMuoyRoc => "khmer symbol pram-muoy roc",
KhmerSymbols::KhmerSymbolPramDashPiiRoc => "khmer symbol pram-pii roc",
KhmerSymbols::KhmerSymbolPramDashBeiRoc => "khmer symbol pram-bei roc",
KhmerSymbols::KhmerSymbolPramDashBuonRoc => "khmer symbol pram-buon roc",
KhmerSymbols::KhmerSymbolDapRoc => "khmer symbol dap roc",
KhmerSymbols::KhmerSymbolDapDashMuoyRoc => "khmer symbol dap-muoy roc",
KhmerSymbols::KhmerSymbolDapDashPiiRoc => "khmer symbol dap-pii roc",
KhmerSymbols::KhmerSymbolDapDashBeiRoc => "khmer symbol dap-bei roc",
KhmerSymbols::KhmerSymbolDapDashBuonRoc => "khmer symbol dap-buon roc",
}
}
}