unicode_types/generated/
nandinagari.rs

1
2/// An enum to represent all characters in the Nandinagari block.
3#[derive(Debug, Clone, Copy, Hash, PartialEq, Eq)]
4pub enum Nandinagari {
5    /// \u{119a0}: '𑦠'
6    LetterA,
7    /// \u{119a1}: '𑦡'
8    LetterAa,
9    /// \u{119a2}: '𑦢'
10    LetterI,
11    /// \u{119a3}: '𑦣'
12    LetterIi,
13    /// \u{119a4}: '𑦤'
14    LetterU,
15    /// \u{119a5}: '𑦥'
16    LetterUu,
17    /// \u{119a6}: '𑦦'
18    LetterVocalicR,
19    /// \u{119a7}: '𑦧'
20    LetterVocalicRr,
21    /// \u{119aa}: '𑦪'
22    LetterE,
23    /// \u{119ab}: '𑦫'
24    LetterAi,
25    /// \u{119ac}: '𑦬'
26    LetterO,
27    /// \u{119ad}: '𑦭'
28    LetterAu,
29    /// \u{119ae}: '𑦮'
30    LetterKa,
31    /// \u{119af}: '𑦯'
32    LetterKha,
33    /// \u{119b0}: '𑦰'
34    LetterGa,
35    /// \u{119b1}: '𑦱'
36    LetterGha,
37    /// \u{119b2}: '𑦲'
38    LetterNga,
39    /// \u{119b3}: '𑦳'
40    LetterCa,
41    /// \u{119b4}: '𑦴'
42    LetterCha,
43    /// \u{119b5}: '𑦵'
44    LetterJa,
45    /// \u{119b6}: '𑦶'
46    LetterJha,
47    /// \u{119b7}: '𑦷'
48    LetterNya,
49    /// \u{119b8}: '𑦸'
50    LetterTta,
51    /// \u{119b9}: '𑦹'
52    LetterTtha,
53    /// \u{119ba}: '𑦺'
54    LetterDda,
55    /// \u{119bb}: '𑦻'
56    LetterDdha,
57    /// \u{119bc}: '𑦼'
58    LetterNna,
59    /// \u{119bd}: '𑦽'
60    LetterTa,
61    /// \u{119be}: '𑦾'
62    LetterTha,
63    /// \u{119bf}: '𑦿'
64    LetterDa,
65    /// \u{119c0}: '𑧀'
66    LetterDha,
67    /// \u{119c1}: '𑧁'
68    LetterNa,
69    /// \u{119c2}: '𑧂'
70    LetterPa,
71    /// \u{119c3}: '𑧃'
72    LetterPha,
73    /// \u{119c4}: '𑧄'
74    LetterBa,
75    /// \u{119c5}: '𑧅'
76    LetterBha,
77    /// \u{119c6}: '𑧆'
78    LetterMa,
79    /// \u{119c7}: '𑧇'
80    LetterYa,
81    /// \u{119c8}: '𑧈'
82    LetterRa,
83    /// \u{119c9}: '𑧉'
84    LetterLa,
85    /// \u{119ca}: '𑧊'
86    LetterVa,
87    /// \u{119cb}: '𑧋'
88    LetterSha,
89    /// \u{119cc}: '𑧌'
90    LetterSsa,
91    /// \u{119cd}: '𑧍'
92    LetterSa,
93    /// \u{119ce}: '𑧎'
94    LetterHa,
95    /// \u{119cf}: '𑧏'
96    LetterLla,
97    /// \u{119d0}: '𑧐'
98    LetterRra,
99    /// \u{119d1}: '𑧑'
100    VowelSignAa,
101    /// \u{119d2}: '𑧒'
102    VowelSignI,
103    /// \u{119d3}: '𑧓'
104    VowelSignIi,
105    /// \u{119d4}: '𑧔'
106    VowelSignU,
107    /// \u{119d5}: '𑧕'
108    VowelSignUu,
109    /// \u{119d6}: '𑧖'
110    VowelSignVocalicR,
111    /// \u{119d7}: '𑧗'
112    VowelSignVocalicRr,
113    /// \u{119da}: '𑧚'
114    VowelSignE,
115    /// \u{119db}: '𑧛'
116    VowelSignAi,
117    /// \u{119dc}: '𑧜'
118    VowelSignO,
119    /// \u{119dd}: '𑧝'
120    VowelSignAu,
121    /// \u{119de}: '𑧞'
122    SignAnusvara,
123    /// \u{119df}: '𑧟'
124    SignVisarga,
125    /// \u{119e0}: '𑧠'
126    SignVirama,
127    /// \u{119e1}: '𑧡'
128    SignAvagraha,
129    /// \u{119e2}: '𑧢'
130    SignSiddham,
131    /// \u{119e3}: '𑧣'
132    Headstroke,
133    /// \u{119e4}: '𑧤'
134    VowelSignPrishthamatraE,
135}
136
137impl Into<char> for Nandinagari {
138    fn into(self) -> char {
139        match self {
140            Nandinagari::LetterA => '𑦠',
141            Nandinagari::LetterAa => '𑦡',
142            Nandinagari::LetterI => '𑦢',
143            Nandinagari::LetterIi => '𑦣',
144            Nandinagari::LetterU => '𑦤',
145            Nandinagari::LetterUu => '𑦥',
146            Nandinagari::LetterVocalicR => '𑦦',
147            Nandinagari::LetterVocalicRr => '𑦧',
148            Nandinagari::LetterE => '𑦪',
149            Nandinagari::LetterAi => '𑦫',
150            Nandinagari::LetterO => '𑦬',
151            Nandinagari::LetterAu => '𑦭',
152            Nandinagari::LetterKa => '𑦮',
153            Nandinagari::LetterKha => '𑦯',
154            Nandinagari::LetterGa => '𑦰',
155            Nandinagari::LetterGha => '𑦱',
156            Nandinagari::LetterNga => '𑦲',
157            Nandinagari::LetterCa => '𑦳',
158            Nandinagari::LetterCha => '𑦴',
159            Nandinagari::LetterJa => '𑦵',
160            Nandinagari::LetterJha => '𑦶',
161            Nandinagari::LetterNya => '𑦷',
162            Nandinagari::LetterTta => '𑦸',
163            Nandinagari::LetterTtha => '𑦹',
164            Nandinagari::LetterDda => '𑦺',
165            Nandinagari::LetterDdha => '𑦻',
166            Nandinagari::LetterNna => '𑦼',
167            Nandinagari::LetterTa => '𑦽',
168            Nandinagari::LetterTha => '𑦾',
169            Nandinagari::LetterDa => '𑦿',
170            Nandinagari::LetterDha => '𑧀',
171            Nandinagari::LetterNa => '𑧁',
172            Nandinagari::LetterPa => '𑧂',
173            Nandinagari::LetterPha => '𑧃',
174            Nandinagari::LetterBa => '𑧄',
175            Nandinagari::LetterBha => '𑧅',
176            Nandinagari::LetterMa => '𑧆',
177            Nandinagari::LetterYa => '𑧇',
178            Nandinagari::LetterRa => '𑧈',
179            Nandinagari::LetterLa => '𑧉',
180            Nandinagari::LetterVa => '𑧊',
181            Nandinagari::LetterSha => '𑧋',
182            Nandinagari::LetterSsa => '𑧌',
183            Nandinagari::LetterSa => '𑧍',
184            Nandinagari::LetterHa => '𑧎',
185            Nandinagari::LetterLla => '𑧏',
186            Nandinagari::LetterRra => '𑧐',
187            Nandinagari::VowelSignAa => '𑧑',
188            Nandinagari::VowelSignI => '𑧒',
189            Nandinagari::VowelSignIi => '𑧓',
190            Nandinagari::VowelSignU => '𑧔',
191            Nandinagari::VowelSignUu => '𑧕',
192            Nandinagari::VowelSignVocalicR => '𑧖',
193            Nandinagari::VowelSignVocalicRr => '𑧗',
194            Nandinagari::VowelSignE => '𑧚',
195            Nandinagari::VowelSignAi => '𑧛',
196            Nandinagari::VowelSignO => '𑧜',
197            Nandinagari::VowelSignAu => '𑧝',
198            Nandinagari::SignAnusvara => '𑧞',
199            Nandinagari::SignVisarga => '𑧟',
200            Nandinagari::SignVirama => '𑧠',
201            Nandinagari::SignAvagraha => '𑧡',
202            Nandinagari::SignSiddham => '𑧢',
203            Nandinagari::Headstroke => '𑧣',
204            Nandinagari::VowelSignPrishthamatraE => '𑧤',
205        }
206    }
207}
208
209impl std::convert::TryFrom<char> for Nandinagari {
210    type Error = ();
211    fn try_from(c: char) -> Result<Self, Self::Error> {
212        match c {
213            '𑦠' => Ok(Nandinagari::LetterA),
214            '𑦡' => Ok(Nandinagari::LetterAa),
215            '𑦢' => Ok(Nandinagari::LetterI),
216            '𑦣' => Ok(Nandinagari::LetterIi),
217            '𑦤' => Ok(Nandinagari::LetterU),
218            '𑦥' => Ok(Nandinagari::LetterUu),
219            '𑦦' => Ok(Nandinagari::LetterVocalicR),
220            '𑦧' => Ok(Nandinagari::LetterVocalicRr),
221            '𑦪' => Ok(Nandinagari::LetterE),
222            '𑦫' => Ok(Nandinagari::LetterAi),
223            '𑦬' => Ok(Nandinagari::LetterO),
224            '𑦭' => Ok(Nandinagari::LetterAu),
225            '𑦮' => Ok(Nandinagari::LetterKa),
226            '𑦯' => Ok(Nandinagari::LetterKha),
227            '𑦰' => Ok(Nandinagari::LetterGa),
228            '𑦱' => Ok(Nandinagari::LetterGha),
229            '𑦲' => Ok(Nandinagari::LetterNga),
230            '𑦳' => Ok(Nandinagari::LetterCa),
231            '𑦴' => Ok(Nandinagari::LetterCha),
232            '𑦵' => Ok(Nandinagari::LetterJa),
233            '𑦶' => Ok(Nandinagari::LetterJha),
234            '𑦷' => Ok(Nandinagari::LetterNya),
235            '𑦸' => Ok(Nandinagari::LetterTta),
236            '𑦹' => Ok(Nandinagari::LetterTtha),
237            '𑦺' => Ok(Nandinagari::LetterDda),
238            '𑦻' => Ok(Nandinagari::LetterDdha),
239            '𑦼' => Ok(Nandinagari::LetterNna),
240            '𑦽' => Ok(Nandinagari::LetterTa),
241            '𑦾' => Ok(Nandinagari::LetterTha),
242            '𑦿' => Ok(Nandinagari::LetterDa),
243            '𑧀' => Ok(Nandinagari::LetterDha),
244            '𑧁' => Ok(Nandinagari::LetterNa),
245            '𑧂' => Ok(Nandinagari::LetterPa),
246            '𑧃' => Ok(Nandinagari::LetterPha),
247            '𑧄' => Ok(Nandinagari::LetterBa),
248            '𑧅' => Ok(Nandinagari::LetterBha),
249            '𑧆' => Ok(Nandinagari::LetterMa),
250            '𑧇' => Ok(Nandinagari::LetterYa),
251            '𑧈' => Ok(Nandinagari::LetterRa),
252            '𑧉' => Ok(Nandinagari::LetterLa),
253            '𑧊' => Ok(Nandinagari::LetterVa),
254            '𑧋' => Ok(Nandinagari::LetterSha),
255            '𑧌' => Ok(Nandinagari::LetterSsa),
256            '𑧍' => Ok(Nandinagari::LetterSa),
257            '𑧎' => Ok(Nandinagari::LetterHa),
258            '𑧏' => Ok(Nandinagari::LetterLla),
259            '𑧐' => Ok(Nandinagari::LetterRra),
260            '𑧑' => Ok(Nandinagari::VowelSignAa),
261            '𑧒' => Ok(Nandinagari::VowelSignI),
262            '𑧓' => Ok(Nandinagari::VowelSignIi),
263            '𑧔' => Ok(Nandinagari::VowelSignU),
264            '𑧕' => Ok(Nandinagari::VowelSignUu),
265            '𑧖' => Ok(Nandinagari::VowelSignVocalicR),
266            '𑧗' => Ok(Nandinagari::VowelSignVocalicRr),
267            '𑧚' => Ok(Nandinagari::VowelSignE),
268            '𑧛' => Ok(Nandinagari::VowelSignAi),
269            '𑧜' => Ok(Nandinagari::VowelSignO),
270            '𑧝' => Ok(Nandinagari::VowelSignAu),
271            '𑧞' => Ok(Nandinagari::SignAnusvara),
272            '𑧟' => Ok(Nandinagari::SignVisarga),
273            '𑧠' => Ok(Nandinagari::SignVirama),
274            '𑧡' => Ok(Nandinagari::SignAvagraha),
275            '𑧢' => Ok(Nandinagari::SignSiddham),
276            '𑧣' => Ok(Nandinagari::Headstroke),
277            '𑧤' => Ok(Nandinagari::VowelSignPrishthamatraE),
278            _ => Err(()),
279        }
280    }
281}
282
283impl Into<u32> for Nandinagari {
284    fn into(self) -> u32 {
285        let c: char = self.into();
286        let hex = c
287            .escape_unicode()
288            .to_string()
289            .replace("\\u{", "")
290            .replace("}", "");
291        u32::from_str_radix(&hex, 16).unwrap()
292    }
293}
294
295impl std::convert::TryFrom<u32> for Nandinagari {
296    type Error = ();
297    fn try_from(u: u32) -> Result<Self, Self::Error> {
298        if let Ok(c) = char::try_from(u) {
299            Self::try_from(c)
300        } else {
301            Err(())
302        }
303    }
304}
305
306impl Iterator for Nandinagari {
307    type Item = Self;
308    fn next(&mut self) -> Option<Self> {
309        let index: u32 = (*self).into();
310        use std::convert::TryFrom;
311        Self::try_from(index + 1).ok()
312    }
313}
314
315impl Nandinagari {
316    /// The character with the lowest index in this unicode block
317    pub fn new() -> Self {
318        Nandinagari::LetterA
319    }
320
321    /// The character's name, in sentence case
322    pub fn name(&self) -> String {
323        let s = std::format!("Nandinagari{:#?}", self);
324        string_morph::to_sentence_case(&s)
325    }
326}