unicode_types/generated/
siddham.rs

1
2/// An enum to represent all characters in the Siddham block.
3#[derive(Debug, Clone, Copy, Hash, PartialEq, Eq)]
4pub enum Siddham {
5    /// \u{11580}: '𑖀'
6    LetterA,
7    /// \u{11581}: '𑖁'
8    LetterAa,
9    /// \u{11582}: '𑖂'
10    LetterI,
11    /// \u{11583}: '𑖃'
12    LetterIi,
13    /// \u{11584}: '𑖄'
14    LetterU,
15    /// \u{11585}: '𑖅'
16    LetterUu,
17    /// \u{11586}: '𑖆'
18    LetterVocalicR,
19    /// \u{11587}: '𑖇'
20    LetterVocalicRr,
21    /// \u{11588}: '𑖈'
22    LetterVocalicL,
23    /// \u{11589}: '𑖉'
24    LetterVocalicLl,
25    /// \u{1158a}: '𑖊'
26    LetterE,
27    /// \u{1158b}: '𑖋'
28    LetterAi,
29    /// \u{1158c}: '𑖌'
30    LetterO,
31    /// \u{1158d}: '𑖍'
32    LetterAu,
33    /// \u{1158e}: '𑖎'
34    LetterKa,
35    /// \u{1158f}: '𑖏'
36    LetterKha,
37    /// \u{11590}: '𑖐'
38    LetterGa,
39    /// \u{11591}: '𑖑'
40    LetterGha,
41    /// \u{11592}: '𑖒'
42    LetterNga,
43    /// \u{11593}: '𑖓'
44    LetterCa,
45    /// \u{11594}: '𑖔'
46    LetterCha,
47    /// \u{11595}: '𑖕'
48    LetterJa,
49    /// \u{11596}: '𑖖'
50    LetterJha,
51    /// \u{11597}: '𑖗'
52    LetterNya,
53    /// \u{11598}: '𑖘'
54    LetterTta,
55    /// \u{11599}: '𑖙'
56    LetterTtha,
57    /// \u{1159a}: '𑖚'
58    LetterDda,
59    /// \u{1159b}: '𑖛'
60    LetterDdha,
61    /// \u{1159c}: '𑖜'
62    LetterNna,
63    /// \u{1159d}: '𑖝'
64    LetterTa,
65    /// \u{1159e}: '𑖞'
66    LetterTha,
67    /// \u{1159f}: '𑖟'
68    LetterDa,
69    /// \u{115a0}: '𑖠'
70    LetterDha,
71    /// \u{115a1}: '𑖡'
72    LetterNa,
73    /// \u{115a2}: '𑖢'
74    LetterPa,
75    /// \u{115a3}: '𑖣'
76    LetterPha,
77    /// \u{115a4}: '𑖤'
78    LetterBa,
79    /// \u{115a5}: '𑖥'
80    LetterBha,
81    /// \u{115a6}: '𑖦'
82    LetterMa,
83    /// \u{115a7}: '𑖧'
84    LetterYa,
85    /// \u{115a8}: '𑖨'
86    LetterRa,
87    /// \u{115a9}: '𑖩'
88    LetterLa,
89    /// \u{115aa}: '𑖪'
90    LetterVa,
91    /// \u{115ab}: '𑖫'
92    LetterSha,
93    /// \u{115ac}: '𑖬'
94    LetterSsa,
95    /// \u{115ad}: '𑖭'
96    LetterSa,
97    /// \u{115ae}: '𑖮'
98    LetterHa,
99    /// \u{115af}: '𑖯'
100    VowelSignAa,
101    /// \u{115b0}: '𑖰'
102    VowelSignI,
103    /// \u{115b1}: '𑖱'
104    VowelSignIi,
105    /// \u{115b2}: '𑖲'
106    VowelSignU,
107    /// \u{115b3}: '𑖳'
108    VowelSignUu,
109    /// \u{115b4}: '𑖴'
110    VowelSignVocalicR,
111    /// \u{115b5}: '𑖵'
112    VowelSignVocalicRr,
113    /// \u{115b8}: '𑖸'
114    VowelSignE,
115    /// \u{115b9}: '𑖹'
116    VowelSignAi,
117    /// \u{115ba}: '𑖺'
118    VowelSignO,
119    /// \u{115bb}: '𑖻'
120    VowelSignAu,
121    /// \u{115bc}: '𑖼'
122    SignCandrabindu,
123    /// \u{115bd}: '𑖽'
124    SignAnusvara,
125    /// \u{115be}: '𑖾'
126    SignVisarga,
127    /// \u{115bf}: '𑖿'
128    SignVirama,
129    /// \u{115c0}: '𑗀'
130    SignNukta,
131    /// \u{115c1}: '𑗁'
132    Sign,
133    /// \u{115c2}: '𑗂'
134    Danda,
135    /// \u{115c3}: '𑗃'
136    DoubleDanda,
137    /// \u{115c4}: '𑗄'
138    SeparatorDot,
139    /// \u{115c5}: '𑗅'
140    SeparatorBar,
141    /// \u{115c6}: '𑗆'
142    RepetitionMarkDash1,
143    /// \u{115c7}: '𑗇'
144    RepetitionMarkDash2,
145    /// \u{115c8}: '𑗈'
146    RepetitionMarkDash3,
147    /// \u{115c9}: '𑗉'
148    EndOfTextMark,
149    /// \u{115ca}: '𑗊'
150    SectionMarkWithTridentAndUDashShapedOrnaments,
151    /// \u{115cb}: '𑗋'
152    SectionMarkWithTridentAndDottedCrescents,
153    /// \u{115cc}: '𑗌'
154    SectionMarkWithRaysAndDottedCrescents,
155    /// \u{115cd}: '𑗍'
156    SectionMarkWithRaysAndDottedDoubleCrescents,
157    /// \u{115ce}: '𑗎'
158    SectionMarkWithRaysAndDottedTripleCrescents,
159    /// \u{115cf}: '𑗏'
160    SectionMarkDoubleRing,
161    /// \u{115d0}: '𑗐'
162    SectionMarkDoubleRingWithRays,
163    /// \u{115d1}: '𑗑'
164    SectionMarkWithDoubleCrescents,
165    /// \u{115d2}: '𑗒'
166    SectionMarkWithTripleCrescents,
167    /// \u{115d3}: '𑗓'
168    SectionMarkWithQuadrupleCrescents,
169    /// \u{115d4}: '𑗔'
170    SectionMarkWithSeptupleCrescents,
171    /// \u{115d5}: '𑗕'
172    SectionMarkWithCirclesAndRays,
173    /// \u{115d6}: '𑗖'
174    SectionMarkWithCirclesAndTwoEnclosures,
175    /// \u{115d7}: '𑗗'
176    SectionMarkWithCirclesAndFourEnclosures,
177    /// \u{115d8}: '𑗘'
178    LetterThreeDashCircleAlternateI,
179    /// \u{115d9}: '𑗙'
180    LetterTwoDashCircleAlternateI,
181    /// \u{115da}: '𑗚'
182    LetterTwoDashCircleAlternateIi,
183    /// \u{115db}: '𑗛'
184    LetterAlternateU,
185    /// \u{115dc}: '𑗜'
186    VowelSignAlternateU,
187    /// \u{115dd}: '𑗝'
188    VowelSignAlternateUu,
189}
190
191impl Into<char> for Siddham {
192    fn into(self) -> char {
193        match self {
194            Siddham::LetterA => '𑖀',
195            Siddham::LetterAa => '𑖁',
196            Siddham::LetterI => '𑖂',
197            Siddham::LetterIi => '𑖃',
198            Siddham::LetterU => '𑖄',
199            Siddham::LetterUu => '𑖅',
200            Siddham::LetterVocalicR => '𑖆',
201            Siddham::LetterVocalicRr => '𑖇',
202            Siddham::LetterVocalicL => '𑖈',
203            Siddham::LetterVocalicLl => '𑖉',
204            Siddham::LetterE => '𑖊',
205            Siddham::LetterAi => '𑖋',
206            Siddham::LetterO => '𑖌',
207            Siddham::LetterAu => '𑖍',
208            Siddham::LetterKa => '𑖎',
209            Siddham::LetterKha => '𑖏',
210            Siddham::LetterGa => '𑖐',
211            Siddham::LetterGha => '𑖑',
212            Siddham::LetterNga => '𑖒',
213            Siddham::LetterCa => '𑖓',
214            Siddham::LetterCha => '𑖔',
215            Siddham::LetterJa => '𑖕',
216            Siddham::LetterJha => '𑖖',
217            Siddham::LetterNya => '𑖗',
218            Siddham::LetterTta => '𑖘',
219            Siddham::LetterTtha => '𑖙',
220            Siddham::LetterDda => '𑖚',
221            Siddham::LetterDdha => '𑖛',
222            Siddham::LetterNna => '𑖜',
223            Siddham::LetterTa => '𑖝',
224            Siddham::LetterTha => '𑖞',
225            Siddham::LetterDa => '𑖟',
226            Siddham::LetterDha => '𑖠',
227            Siddham::LetterNa => '𑖡',
228            Siddham::LetterPa => '𑖢',
229            Siddham::LetterPha => '𑖣',
230            Siddham::LetterBa => '𑖤',
231            Siddham::LetterBha => '𑖥',
232            Siddham::LetterMa => '𑖦',
233            Siddham::LetterYa => '𑖧',
234            Siddham::LetterRa => '𑖨',
235            Siddham::LetterLa => '𑖩',
236            Siddham::LetterVa => '𑖪',
237            Siddham::LetterSha => '𑖫',
238            Siddham::LetterSsa => '𑖬',
239            Siddham::LetterSa => '𑖭',
240            Siddham::LetterHa => '𑖮',
241            Siddham::VowelSignAa => '𑖯',
242            Siddham::VowelSignI => '𑖰',
243            Siddham::VowelSignIi => '𑖱',
244            Siddham::VowelSignU => '𑖲',
245            Siddham::VowelSignUu => '𑖳',
246            Siddham::VowelSignVocalicR => '𑖴',
247            Siddham::VowelSignVocalicRr => '𑖵',
248            Siddham::VowelSignE => '𑖸',
249            Siddham::VowelSignAi => '𑖹',
250            Siddham::VowelSignO => '𑖺',
251            Siddham::VowelSignAu => '𑖻',
252            Siddham::SignCandrabindu => '𑖼',
253            Siddham::SignAnusvara => '𑖽',
254            Siddham::SignVisarga => '𑖾',
255            Siddham::SignVirama => '𑖿',
256            Siddham::SignNukta => '𑗀',
257            Siddham::Sign => '𑗁',
258            Siddham::Danda => '𑗂',
259            Siddham::DoubleDanda => '𑗃',
260            Siddham::SeparatorDot => '𑗄',
261            Siddham::SeparatorBar => '𑗅',
262            Siddham::RepetitionMarkDash1 => '𑗆',
263            Siddham::RepetitionMarkDash2 => '𑗇',
264            Siddham::RepetitionMarkDash3 => '𑗈',
265            Siddham::EndOfTextMark => '𑗉',
266            Siddham::SectionMarkWithTridentAndUDashShapedOrnaments => '𑗊',
267            Siddham::SectionMarkWithTridentAndDottedCrescents => '𑗋',
268            Siddham::SectionMarkWithRaysAndDottedCrescents => '𑗌',
269            Siddham::SectionMarkWithRaysAndDottedDoubleCrescents => '𑗍',
270            Siddham::SectionMarkWithRaysAndDottedTripleCrescents => '𑗎',
271            Siddham::SectionMarkDoubleRing => '𑗏',
272            Siddham::SectionMarkDoubleRingWithRays => '𑗐',
273            Siddham::SectionMarkWithDoubleCrescents => '𑗑',
274            Siddham::SectionMarkWithTripleCrescents => '𑗒',
275            Siddham::SectionMarkWithQuadrupleCrescents => '𑗓',
276            Siddham::SectionMarkWithSeptupleCrescents => '𑗔',
277            Siddham::SectionMarkWithCirclesAndRays => '𑗕',
278            Siddham::SectionMarkWithCirclesAndTwoEnclosures => '𑗖',
279            Siddham::SectionMarkWithCirclesAndFourEnclosures => '𑗗',
280            Siddham::LetterThreeDashCircleAlternateI => '𑗘',
281            Siddham::LetterTwoDashCircleAlternateI => '𑗙',
282            Siddham::LetterTwoDashCircleAlternateIi => '𑗚',
283            Siddham::LetterAlternateU => '𑗛',
284            Siddham::VowelSignAlternateU => '𑗜',
285            Siddham::VowelSignAlternateUu => '𑗝',
286        }
287    }
288}
289
290impl std::convert::TryFrom<char> for Siddham {
291    type Error = ();
292    fn try_from(c: char) -> Result<Self, Self::Error> {
293        match c {
294            '𑖀' => Ok(Siddham::LetterA),
295            '𑖁' => Ok(Siddham::LetterAa),
296            '𑖂' => Ok(Siddham::LetterI),
297            '𑖃' => Ok(Siddham::LetterIi),
298            '𑖄' => Ok(Siddham::LetterU),
299            '𑖅' => Ok(Siddham::LetterUu),
300            '𑖆' => Ok(Siddham::LetterVocalicR),
301            '𑖇' => Ok(Siddham::LetterVocalicRr),
302            '𑖈' => Ok(Siddham::LetterVocalicL),
303            '𑖉' => Ok(Siddham::LetterVocalicLl),
304            '𑖊' => Ok(Siddham::LetterE),
305            '𑖋' => Ok(Siddham::LetterAi),
306            '𑖌' => Ok(Siddham::LetterO),
307            '𑖍' => Ok(Siddham::LetterAu),
308            '𑖎' => Ok(Siddham::LetterKa),
309            '𑖏' => Ok(Siddham::LetterKha),
310            '𑖐' => Ok(Siddham::LetterGa),
311            '𑖑' => Ok(Siddham::LetterGha),
312            '𑖒' => Ok(Siddham::LetterNga),
313            '𑖓' => Ok(Siddham::LetterCa),
314            '𑖔' => Ok(Siddham::LetterCha),
315            '𑖕' => Ok(Siddham::LetterJa),
316            '𑖖' => Ok(Siddham::LetterJha),
317            '𑖗' => Ok(Siddham::LetterNya),
318            '𑖘' => Ok(Siddham::LetterTta),
319            '𑖙' => Ok(Siddham::LetterTtha),
320            '𑖚' => Ok(Siddham::LetterDda),
321            '𑖛' => Ok(Siddham::LetterDdha),
322            '𑖜' => Ok(Siddham::LetterNna),
323            '𑖝' => Ok(Siddham::LetterTa),
324            '𑖞' => Ok(Siddham::LetterTha),
325            '𑖟' => Ok(Siddham::LetterDa),
326            '𑖠' => Ok(Siddham::LetterDha),
327            '𑖡' => Ok(Siddham::LetterNa),
328            '𑖢' => Ok(Siddham::LetterPa),
329            '𑖣' => Ok(Siddham::LetterPha),
330            '𑖤' => Ok(Siddham::LetterBa),
331            '𑖥' => Ok(Siddham::LetterBha),
332            '𑖦' => Ok(Siddham::LetterMa),
333            '𑖧' => Ok(Siddham::LetterYa),
334            '𑖨' => Ok(Siddham::LetterRa),
335            '𑖩' => Ok(Siddham::LetterLa),
336            '𑖪' => Ok(Siddham::LetterVa),
337            '𑖫' => Ok(Siddham::LetterSha),
338            '𑖬' => Ok(Siddham::LetterSsa),
339            '𑖭' => Ok(Siddham::LetterSa),
340            '𑖮' => Ok(Siddham::LetterHa),
341            '𑖯' => Ok(Siddham::VowelSignAa),
342            '𑖰' => Ok(Siddham::VowelSignI),
343            '𑖱' => Ok(Siddham::VowelSignIi),
344            '𑖲' => Ok(Siddham::VowelSignU),
345            '𑖳' => Ok(Siddham::VowelSignUu),
346            '𑖴' => Ok(Siddham::VowelSignVocalicR),
347            '𑖵' => Ok(Siddham::VowelSignVocalicRr),
348            '𑖸' => Ok(Siddham::VowelSignE),
349            '𑖹' => Ok(Siddham::VowelSignAi),
350            '𑖺' => Ok(Siddham::VowelSignO),
351            '𑖻' => Ok(Siddham::VowelSignAu),
352            '𑖼' => Ok(Siddham::SignCandrabindu),
353            '𑖽' => Ok(Siddham::SignAnusvara),
354            '𑖾' => Ok(Siddham::SignVisarga),
355            '𑖿' => Ok(Siddham::SignVirama),
356            '𑗀' => Ok(Siddham::SignNukta),
357            '𑗁' => Ok(Siddham::Sign),
358            '𑗂' => Ok(Siddham::Danda),
359            '𑗃' => Ok(Siddham::DoubleDanda),
360            '𑗄' => Ok(Siddham::SeparatorDot),
361            '𑗅' => Ok(Siddham::SeparatorBar),
362            '𑗆' => Ok(Siddham::RepetitionMarkDash1),
363            '𑗇' => Ok(Siddham::RepetitionMarkDash2),
364            '𑗈' => Ok(Siddham::RepetitionMarkDash3),
365            '𑗉' => Ok(Siddham::EndOfTextMark),
366            '𑗊' => Ok(Siddham::SectionMarkWithTridentAndUDashShapedOrnaments),
367            '𑗋' => Ok(Siddham::SectionMarkWithTridentAndDottedCrescents),
368            '𑗌' => Ok(Siddham::SectionMarkWithRaysAndDottedCrescents),
369            '𑗍' => Ok(Siddham::SectionMarkWithRaysAndDottedDoubleCrescents),
370            '𑗎' => Ok(Siddham::SectionMarkWithRaysAndDottedTripleCrescents),
371            '𑗏' => Ok(Siddham::SectionMarkDoubleRing),
372            '𑗐' => Ok(Siddham::SectionMarkDoubleRingWithRays),
373            '𑗑' => Ok(Siddham::SectionMarkWithDoubleCrescents),
374            '𑗒' => Ok(Siddham::SectionMarkWithTripleCrescents),
375            '𑗓' => Ok(Siddham::SectionMarkWithQuadrupleCrescents),
376            '𑗔' => Ok(Siddham::SectionMarkWithSeptupleCrescents),
377            '𑗕' => Ok(Siddham::SectionMarkWithCirclesAndRays),
378            '𑗖' => Ok(Siddham::SectionMarkWithCirclesAndTwoEnclosures),
379            '𑗗' => Ok(Siddham::SectionMarkWithCirclesAndFourEnclosures),
380            '𑗘' => Ok(Siddham::LetterThreeDashCircleAlternateI),
381            '𑗙' => Ok(Siddham::LetterTwoDashCircleAlternateI),
382            '𑗚' => Ok(Siddham::LetterTwoDashCircleAlternateIi),
383            '𑗛' => Ok(Siddham::LetterAlternateU),
384            '𑗜' => Ok(Siddham::VowelSignAlternateU),
385            '𑗝' => Ok(Siddham::VowelSignAlternateUu),
386            _ => Err(()),
387        }
388    }
389}
390
391impl Into<u32> for Siddham {
392    fn into(self) -> u32 {
393        let c: char = self.into();
394        let hex = c
395            .escape_unicode()
396            .to_string()
397            .replace("\\u{", "")
398            .replace("}", "");
399        u32::from_str_radix(&hex, 16).unwrap()
400    }
401}
402
403impl std::convert::TryFrom<u32> for Siddham {
404    type Error = ();
405    fn try_from(u: u32) -> Result<Self, Self::Error> {
406        if let Ok(c) = char::try_from(u) {
407            Self::try_from(c)
408        } else {
409            Err(())
410        }
411    }
412}
413
414impl Iterator for Siddham {
415    type Item = Self;
416    fn next(&mut self) -> Option<Self> {
417        let index: u32 = (*self).into();
418        use std::convert::TryFrom;
419        Self::try_from(index + 1).ok()
420    }
421}
422
423impl Siddham {
424    /// The character with the lowest index in this unicode block
425    pub fn new() -> Self {
426        Siddham::LetterA
427    }
428
429    /// The character's name, in sentence case
430    pub fn name(&self) -> String {
431        let s = std::format!("Siddham{:#?}", self);
432        string_morph::to_sentence_case(&s)
433    }
434}