unicode_types/generated/
sinhala_archaic_numbers.rs1
2#[derive(Debug, Clone, Copy, Hash, PartialEq, Eq)]
4pub enum SinhalaArchaicNumbers {
5 SinhalaArchaicDigitOne,
7 SinhalaArchaicDigitTwo,
9 SinhalaArchaicDigitThree,
11 SinhalaArchaicDigitFour,
13 SinhalaArchaicDigitFive,
15 SinhalaArchaicDigitSix,
17 SinhalaArchaicDigitSeven,
19 SinhalaArchaicDigitEight,
21 SinhalaArchaicDigitNine,
23 SinhalaArchaicNumberTen,
25 SinhalaArchaicNumberTwenty,
27 SinhalaArchaicNumberThirty,
29 SinhalaArchaicNumberForty,
31 SinhalaArchaicNumberFifty,
33 SinhalaArchaicNumberSixty,
35 SinhalaArchaicNumberSeventy,
37 SinhalaArchaicNumberEighty,
39 SinhalaArchaicNumberNinety,
41 SinhalaArchaicNumberOneHundred,
43 SinhalaArchaicNumberOneThousand,
45}
46
47impl Into<char> for SinhalaArchaicNumbers {
48 fn into(self) -> char {
49 match self {
50 SinhalaArchaicNumbers::SinhalaArchaicDigitOne => '𑇡',
51 SinhalaArchaicNumbers::SinhalaArchaicDigitTwo => '𑇢',
52 SinhalaArchaicNumbers::SinhalaArchaicDigitThree => '𑇣',
53 SinhalaArchaicNumbers::SinhalaArchaicDigitFour => '𑇤',
54 SinhalaArchaicNumbers::SinhalaArchaicDigitFive => '𑇥',
55 SinhalaArchaicNumbers::SinhalaArchaicDigitSix => '𑇦',
56 SinhalaArchaicNumbers::SinhalaArchaicDigitSeven => '𑇧',
57 SinhalaArchaicNumbers::SinhalaArchaicDigitEight => '𑇨',
58 SinhalaArchaicNumbers::SinhalaArchaicDigitNine => '𑇩',
59 SinhalaArchaicNumbers::SinhalaArchaicNumberTen => '𑇪',
60 SinhalaArchaicNumbers::SinhalaArchaicNumberTwenty => '𑇫',
61 SinhalaArchaicNumbers::SinhalaArchaicNumberThirty => '𑇬',
62 SinhalaArchaicNumbers::SinhalaArchaicNumberForty => 'ð‘‡',
63 SinhalaArchaicNumbers::SinhalaArchaicNumberFifty => '𑇮',
64 SinhalaArchaicNumbers::SinhalaArchaicNumberSixty => '𑇯',
65 SinhalaArchaicNumbers::SinhalaArchaicNumberSeventy => '𑇰',
66 SinhalaArchaicNumbers::SinhalaArchaicNumberEighty => '𑇱',
67 SinhalaArchaicNumbers::SinhalaArchaicNumberNinety => '𑇲',
68 SinhalaArchaicNumbers::SinhalaArchaicNumberOneHundred => '𑇳',
69 SinhalaArchaicNumbers::SinhalaArchaicNumberOneThousand => '𑇴',
70 }
71 }
72}
73
74impl std::convert::TryFrom<char> for SinhalaArchaicNumbers {
75 type Error = ();
76 fn try_from(c: char) -> Result<Self, Self::Error> {
77 match c {
78 '𑇡' => Ok(SinhalaArchaicNumbers::SinhalaArchaicDigitOne),
79 '𑇢' => Ok(SinhalaArchaicNumbers::SinhalaArchaicDigitTwo),
80 '𑇣' => Ok(SinhalaArchaicNumbers::SinhalaArchaicDigitThree),
81 '𑇤' => Ok(SinhalaArchaicNumbers::SinhalaArchaicDigitFour),
82 '𑇥' => Ok(SinhalaArchaicNumbers::SinhalaArchaicDigitFive),
83 '𑇦' => Ok(SinhalaArchaicNumbers::SinhalaArchaicDigitSix),
84 '𑇧' => Ok(SinhalaArchaicNumbers::SinhalaArchaicDigitSeven),
85 '𑇨' => Ok(SinhalaArchaicNumbers::SinhalaArchaicDigitEight),
86 '𑇩' => Ok(SinhalaArchaicNumbers::SinhalaArchaicDigitNine),
87 '𑇪' => Ok(SinhalaArchaicNumbers::SinhalaArchaicNumberTen),
88 '𑇫' => Ok(SinhalaArchaicNumbers::SinhalaArchaicNumberTwenty),
89 '𑇬' => Ok(SinhalaArchaicNumbers::SinhalaArchaicNumberThirty),
90 'ð‘‡' => Ok(SinhalaArchaicNumbers::SinhalaArchaicNumberForty),
91 '𑇮' => Ok(SinhalaArchaicNumbers::SinhalaArchaicNumberFifty),
92 '𑇯' => Ok(SinhalaArchaicNumbers::SinhalaArchaicNumberSixty),
93 '𑇰' => Ok(SinhalaArchaicNumbers::SinhalaArchaicNumberSeventy),
94 '𑇱' => Ok(SinhalaArchaicNumbers::SinhalaArchaicNumberEighty),
95 '𑇲' => Ok(SinhalaArchaicNumbers::SinhalaArchaicNumberNinety),
96 '𑇳' => Ok(SinhalaArchaicNumbers::SinhalaArchaicNumberOneHundred),
97 '𑇴' => Ok(SinhalaArchaicNumbers::SinhalaArchaicNumberOneThousand),
98 _ => Err(()),
99 }
100 }
101}
102
103impl Into<u32> for SinhalaArchaicNumbers {
104 fn into(self) -> u32 {
105 let c: char = self.into();
106 let hex = c
107 .escape_unicode()
108 .to_string()
109 .replace("\\u{", "")
110 .replace("}", "");
111 u32::from_str_radix(&hex, 16).unwrap()
112 }
113}
114
115impl std::convert::TryFrom<u32> for SinhalaArchaicNumbers {
116 type Error = ();
117 fn try_from(u: u32) -> Result<Self, Self::Error> {
118 if let Ok(c) = char::try_from(u) {
119 Self::try_from(c)
120 } else {
121 Err(())
122 }
123 }
124}
125
126impl Iterator for SinhalaArchaicNumbers {
127 type Item = Self;
128 fn next(&mut self) -> Option<Self> {
129 let index: u32 = (*self).into();
130 use std::convert::TryFrom;
131 Self::try_from(index + 1).ok()
132 }
133}
134
135impl SinhalaArchaicNumbers {
136 pub fn new() -> Self {
138 SinhalaArchaicNumbers::SinhalaArchaicDigitOne
139 }
140
141 pub fn name(&self) -> String {
143 let s = std::format!("SinhalaArchaicNumbers{:#?}", self);
144 string_morph::to_sentence_case(&s)
145 }
146}