#[derive(Debug, Clone, Copy, Hash, PartialEq, Eq)]
pub enum IndicSiyaqNumbers {
IndicSiyaqNumberOne,
IndicSiyaqNumberTwo,
IndicSiyaqNumberThree,
IndicSiyaqNumberFour,
IndicSiyaqNumberFive,
IndicSiyaqNumberSix,
IndicSiyaqNumberSeven,
IndicSiyaqNumberEight,
IndicSiyaqNumberNine,
IndicSiyaqNumberTen,
IndicSiyaqNumberTwenty,
IndicSiyaqNumberThirty,
IndicSiyaqNumberForty,
IndicSiyaqNumberFifty,
IndicSiyaqNumberSixty,
IndicSiyaqNumberSeventy,
IndicSiyaqNumberEighty,
IndicSiyaqNumberNinety,
IndicSiyaqNumberOneHundred,
IndicSiyaqNumberTwoHundred,
IndicSiyaqNumberThreeHundred,
IndicSiyaqNumberFourHundred,
IndicSiyaqNumberFiveHundred,
IndicSiyaqNumberSixHundred,
IndicSiyaqNumberSevenHundred,
IndicSiyaqNumberEightHundred,
IndicSiyaqNumberNineHundred,
IndicSiyaqNumberOneThousand,
IndicSiyaqNumberTwoThousand,
IndicSiyaqNumberThreeThousand,
IndicSiyaqNumberFourThousand,
IndicSiyaqNumberFiveThousand,
IndicSiyaqNumberSixThousand,
IndicSiyaqNumberSevenThousand,
IndicSiyaqNumberEightThousand,
IndicSiyaqNumberNineThousand,
IndicSiyaqNumberTenThousand,
IndicSiyaqNumberTwentyThousand,
IndicSiyaqNumberThirtyThousand,
IndicSiyaqNumberFortyThousand,
IndicSiyaqNumberFiftyThousand,
IndicSiyaqNumberSixtyThousand,
IndicSiyaqNumberSeventyThousand,
IndicSiyaqNumberEightyThousand,
IndicSiyaqNumberNinetyThousand,
IndicSiyaqNumberLakh,
IndicSiyaqNumberLakhan,
IndicSiyaqLakhMark,
IndicSiyaqNumberKaror,
IndicSiyaqNumberKaroran,
IndicSiyaqNumberPrefixedOne,
IndicSiyaqNumberPrefixedTwo,
IndicSiyaqNumberPrefixedThree,
IndicSiyaqNumberPrefixedFour,
IndicSiyaqNumberPrefixedFive,
IndicSiyaqNumberPrefixedSix,
IndicSiyaqNumberPrefixedSeven,
IndicSiyaqNumberPrefixedEight,
IndicSiyaqNumberPrefixedNine,
IndicSiyaqPlaceholder,
IndicSiyaqFractionOneQuarter,
IndicSiyaqFractionOneHalf,
IndicSiyaqFractionThreeQuarters,
IndicSiyaqRupeeMark,
IndicSiyaqNumberAlternateOne,
IndicSiyaqNumberAlternateTwo,
IndicSiyaqNumberAlternateTenThousand,
IndicSiyaqAlternateLakhMark,
}
impl Into<char> for IndicSiyaqNumbers {
fn into(self) -> char {
match self {
IndicSiyaqNumbers::IndicSiyaqNumberOne => '𞱱',
IndicSiyaqNumbers::IndicSiyaqNumberTwo => '𞱲',
IndicSiyaqNumbers::IndicSiyaqNumberThree => '𞱳',
IndicSiyaqNumbers::IndicSiyaqNumberFour => '𞱴',
IndicSiyaqNumbers::IndicSiyaqNumberFive => '𞱵',
IndicSiyaqNumbers::IndicSiyaqNumberSix => '𞱶',
IndicSiyaqNumbers::IndicSiyaqNumberSeven => '𞱷',
IndicSiyaqNumbers::IndicSiyaqNumberEight => '𞱸',
IndicSiyaqNumbers::IndicSiyaqNumberNine => '𞱹',
IndicSiyaqNumbers::IndicSiyaqNumberTen => '𞱺',
IndicSiyaqNumbers::IndicSiyaqNumberTwenty => '𞱻',
IndicSiyaqNumbers::IndicSiyaqNumberThirty => '𞱼',
IndicSiyaqNumbers::IndicSiyaqNumberForty => '𞱽',
IndicSiyaqNumbers::IndicSiyaqNumberFifty => '𞱾',
IndicSiyaqNumbers::IndicSiyaqNumberSixty => '𞱿',
IndicSiyaqNumbers::IndicSiyaqNumberSeventy => '𞲀',
IndicSiyaqNumbers::IndicSiyaqNumberEighty => '𞲁',
IndicSiyaqNumbers::IndicSiyaqNumberNinety => '𞲂',
IndicSiyaqNumbers::IndicSiyaqNumberOneHundred => '𞲃',
IndicSiyaqNumbers::IndicSiyaqNumberTwoHundred => '𞲄',
IndicSiyaqNumbers::IndicSiyaqNumberThreeHundred => '𞲅',
IndicSiyaqNumbers::IndicSiyaqNumberFourHundred => '𞲆',
IndicSiyaqNumbers::IndicSiyaqNumberFiveHundred => '𞲇',
IndicSiyaqNumbers::IndicSiyaqNumberSixHundred => '𞲈',
IndicSiyaqNumbers::IndicSiyaqNumberSevenHundred => '𞲉',
IndicSiyaqNumbers::IndicSiyaqNumberEightHundred => '𞲊',
IndicSiyaqNumbers::IndicSiyaqNumberNineHundred => '𞲋',
IndicSiyaqNumbers::IndicSiyaqNumberOneThousand => '𞲌',
IndicSiyaqNumbers::IndicSiyaqNumberTwoThousand => '𞲍',
IndicSiyaqNumbers::IndicSiyaqNumberThreeThousand => '𞲎',
IndicSiyaqNumbers::IndicSiyaqNumberFourThousand => '𞲏',
IndicSiyaqNumbers::IndicSiyaqNumberFiveThousand => '𞲐',
IndicSiyaqNumbers::IndicSiyaqNumberSixThousand => '𞲑',
IndicSiyaqNumbers::IndicSiyaqNumberSevenThousand => '𞲒',
IndicSiyaqNumbers::IndicSiyaqNumberEightThousand => '𞲓',
IndicSiyaqNumbers::IndicSiyaqNumberNineThousand => '𞲔',
IndicSiyaqNumbers::IndicSiyaqNumberTenThousand => '𞲕',
IndicSiyaqNumbers::IndicSiyaqNumberTwentyThousand => '𞲖',
IndicSiyaqNumbers::IndicSiyaqNumberThirtyThousand => '𞲗',
IndicSiyaqNumbers::IndicSiyaqNumberFortyThousand => '𞲘',
IndicSiyaqNumbers::IndicSiyaqNumberFiftyThousand => '𞲙',
IndicSiyaqNumbers::IndicSiyaqNumberSixtyThousand => '𞲚',
IndicSiyaqNumbers::IndicSiyaqNumberSeventyThousand => '𞲛',
IndicSiyaqNumbers::IndicSiyaqNumberEightyThousand => '𞲜',
IndicSiyaqNumbers::IndicSiyaqNumberNinetyThousand => '𞲝',
IndicSiyaqNumbers::IndicSiyaqNumberLakh => '𞲞',
IndicSiyaqNumbers::IndicSiyaqNumberLakhan => '𞲟',
IndicSiyaqNumbers::IndicSiyaqLakhMark => '𞲠',
IndicSiyaqNumbers::IndicSiyaqNumberKaror => '𞲡',
IndicSiyaqNumbers::IndicSiyaqNumberKaroran => '𞲢',
IndicSiyaqNumbers::IndicSiyaqNumberPrefixedOne => '𞲣',
IndicSiyaqNumbers::IndicSiyaqNumberPrefixedTwo => '𞲤',
IndicSiyaqNumbers::IndicSiyaqNumberPrefixedThree => '𞲥',
IndicSiyaqNumbers::IndicSiyaqNumberPrefixedFour => '𞲦',
IndicSiyaqNumbers::IndicSiyaqNumberPrefixedFive => '𞲧',
IndicSiyaqNumbers::IndicSiyaqNumberPrefixedSix => '𞲨',
IndicSiyaqNumbers::IndicSiyaqNumberPrefixedSeven => '𞲩',
IndicSiyaqNumbers::IndicSiyaqNumberPrefixedEight => '𞲪',
IndicSiyaqNumbers::IndicSiyaqNumberPrefixedNine => '𞲫',
IndicSiyaqNumbers::IndicSiyaqPlaceholder => '𞲬',
IndicSiyaqNumbers::IndicSiyaqFractionOneQuarter => '𞲭',
IndicSiyaqNumbers::IndicSiyaqFractionOneHalf => '𞲮',
IndicSiyaqNumbers::IndicSiyaqFractionThreeQuarters => '𞲯',
IndicSiyaqNumbers::IndicSiyaqRupeeMark => '𞲰',
IndicSiyaqNumbers::IndicSiyaqNumberAlternateOne => '𞲱',
IndicSiyaqNumbers::IndicSiyaqNumberAlternateTwo => '𞲲',
IndicSiyaqNumbers::IndicSiyaqNumberAlternateTenThousand => '𞲳',
IndicSiyaqNumbers::IndicSiyaqAlternateLakhMark => '𞲴',
}
}
}
impl std::convert::TryFrom<char> for IndicSiyaqNumbers {
type Error = ();
fn try_from(c: char) -> Result<Self, Self::Error> {
match c {
'𞱱' => Ok(IndicSiyaqNumbers::IndicSiyaqNumberOne),
'𞱲' => Ok(IndicSiyaqNumbers::IndicSiyaqNumberTwo),
'𞱳' => Ok(IndicSiyaqNumbers::IndicSiyaqNumberThree),
'𞱴' => Ok(IndicSiyaqNumbers::IndicSiyaqNumberFour),
'𞱵' => Ok(IndicSiyaqNumbers::IndicSiyaqNumberFive),
'𞱶' => Ok(IndicSiyaqNumbers::IndicSiyaqNumberSix),
'𞱷' => Ok(IndicSiyaqNumbers::IndicSiyaqNumberSeven),
'𞱸' => Ok(IndicSiyaqNumbers::IndicSiyaqNumberEight),
'𞱹' => Ok(IndicSiyaqNumbers::IndicSiyaqNumberNine),
'𞱺' => Ok(IndicSiyaqNumbers::IndicSiyaqNumberTen),
'𞱻' => Ok(IndicSiyaqNumbers::IndicSiyaqNumberTwenty),
'𞱼' => Ok(IndicSiyaqNumbers::IndicSiyaqNumberThirty),
'𞱽' => Ok(IndicSiyaqNumbers::IndicSiyaqNumberForty),
'𞱾' => Ok(IndicSiyaqNumbers::IndicSiyaqNumberFifty),
'𞱿' => Ok(IndicSiyaqNumbers::IndicSiyaqNumberSixty),
'𞲀' => Ok(IndicSiyaqNumbers::IndicSiyaqNumberSeventy),
'𞲁' => Ok(IndicSiyaqNumbers::IndicSiyaqNumberEighty),
'𞲂' => Ok(IndicSiyaqNumbers::IndicSiyaqNumberNinety),
'𞲃' => Ok(IndicSiyaqNumbers::IndicSiyaqNumberOneHundred),
'𞲄' => Ok(IndicSiyaqNumbers::IndicSiyaqNumberTwoHundred),
'𞲅' => Ok(IndicSiyaqNumbers::IndicSiyaqNumberThreeHundred),
'𞲆' => Ok(IndicSiyaqNumbers::IndicSiyaqNumberFourHundred),
'𞲇' => Ok(IndicSiyaqNumbers::IndicSiyaqNumberFiveHundred),
'𞲈' => Ok(IndicSiyaqNumbers::IndicSiyaqNumberSixHundred),
'𞲉' => Ok(IndicSiyaqNumbers::IndicSiyaqNumberSevenHundred),
'𞲊' => Ok(IndicSiyaqNumbers::IndicSiyaqNumberEightHundred),
'𞲋' => Ok(IndicSiyaqNumbers::IndicSiyaqNumberNineHundred),
'𞲌' => Ok(IndicSiyaqNumbers::IndicSiyaqNumberOneThousand),
'𞲍' => Ok(IndicSiyaqNumbers::IndicSiyaqNumberTwoThousand),
'𞲎' => Ok(IndicSiyaqNumbers::IndicSiyaqNumberThreeThousand),
'𞲏' => Ok(IndicSiyaqNumbers::IndicSiyaqNumberFourThousand),
'𞲐' => Ok(IndicSiyaqNumbers::IndicSiyaqNumberFiveThousand),
'𞲑' => Ok(IndicSiyaqNumbers::IndicSiyaqNumberSixThousand),
'𞲒' => Ok(IndicSiyaqNumbers::IndicSiyaqNumberSevenThousand),
'𞲓' => Ok(IndicSiyaqNumbers::IndicSiyaqNumberEightThousand),
'𞲔' => Ok(IndicSiyaqNumbers::IndicSiyaqNumberNineThousand),
'𞲕' => Ok(IndicSiyaqNumbers::IndicSiyaqNumberTenThousand),
'𞲖' => Ok(IndicSiyaqNumbers::IndicSiyaqNumberTwentyThousand),
'𞲗' => Ok(IndicSiyaqNumbers::IndicSiyaqNumberThirtyThousand),
'𞲘' => Ok(IndicSiyaqNumbers::IndicSiyaqNumberFortyThousand),
'𞲙' => Ok(IndicSiyaqNumbers::IndicSiyaqNumberFiftyThousand),
'𞲚' => Ok(IndicSiyaqNumbers::IndicSiyaqNumberSixtyThousand),
'𞲛' => Ok(IndicSiyaqNumbers::IndicSiyaqNumberSeventyThousand),
'𞲜' => Ok(IndicSiyaqNumbers::IndicSiyaqNumberEightyThousand),
'𞲝' => Ok(IndicSiyaqNumbers::IndicSiyaqNumberNinetyThousand),
'𞲞' => Ok(IndicSiyaqNumbers::IndicSiyaqNumberLakh),
'𞲟' => Ok(IndicSiyaqNumbers::IndicSiyaqNumberLakhan),
'𞲠' => Ok(IndicSiyaqNumbers::IndicSiyaqLakhMark),
'𞲡' => Ok(IndicSiyaqNumbers::IndicSiyaqNumberKaror),
'𞲢' => Ok(IndicSiyaqNumbers::IndicSiyaqNumberKaroran),
'𞲣' => Ok(IndicSiyaqNumbers::IndicSiyaqNumberPrefixedOne),
'𞲤' => Ok(IndicSiyaqNumbers::IndicSiyaqNumberPrefixedTwo),
'𞲥' => Ok(IndicSiyaqNumbers::IndicSiyaqNumberPrefixedThree),
'𞲦' => Ok(IndicSiyaqNumbers::IndicSiyaqNumberPrefixedFour),
'𞲧' => Ok(IndicSiyaqNumbers::IndicSiyaqNumberPrefixedFive),
'𞲨' => Ok(IndicSiyaqNumbers::IndicSiyaqNumberPrefixedSix),
'𞲩' => Ok(IndicSiyaqNumbers::IndicSiyaqNumberPrefixedSeven),
'𞲪' => Ok(IndicSiyaqNumbers::IndicSiyaqNumberPrefixedEight),
'𞲫' => Ok(IndicSiyaqNumbers::IndicSiyaqNumberPrefixedNine),
'𞲬' => Ok(IndicSiyaqNumbers::IndicSiyaqPlaceholder),
'𞲭' => Ok(IndicSiyaqNumbers::IndicSiyaqFractionOneQuarter),
'𞲮' => Ok(IndicSiyaqNumbers::IndicSiyaqFractionOneHalf),
'𞲯' => Ok(IndicSiyaqNumbers::IndicSiyaqFractionThreeQuarters),
'𞲰' => Ok(IndicSiyaqNumbers::IndicSiyaqRupeeMark),
'𞲱' => Ok(IndicSiyaqNumbers::IndicSiyaqNumberAlternateOne),
'𞲲' => Ok(IndicSiyaqNumbers::IndicSiyaqNumberAlternateTwo),
'𞲳' => Ok(IndicSiyaqNumbers::IndicSiyaqNumberAlternateTenThousand),
'𞲴' => Ok(IndicSiyaqNumbers::IndicSiyaqAlternateLakhMark),
_ => Err(()),
}
}
}
impl Into<u32> for IndicSiyaqNumbers {
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 IndicSiyaqNumbers {
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 IndicSiyaqNumbers {
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 IndicSiyaqNumbers {
pub fn new() -> Self {
IndicSiyaqNumbers::IndicSiyaqNumberOne
}
pub fn name(&self) -> String {
let s = std::format!("IndicSiyaqNumbers{:#?}", self);
string_morph::to_sentence_case(&s)
}
}