unicode_types/generated/
yi_radicals.rs

1
2/// An enum to represent all characters in the YiRadicals block.
3#[derive(Debug, Clone, Copy, Hash, PartialEq, Eq)]
4pub enum YiRadicals {
5    /// \u{a490}: '꒐'
6    YiRadicalQot,
7    /// \u{a491}: '꒑'
8    YiRadicalLi,
9    /// \u{a492}: '꒒'
10    YiRadicalKit,
11    /// \u{a493}: '꒓'
12    YiRadicalNyip,
13    /// \u{a494}: '꒔'
14    YiRadicalCyp,
15    /// \u{a495}: '꒕'
16    YiRadicalSsi,
17    /// \u{a496}: '꒖'
18    YiRadicalGgop,
19    /// \u{a497}: '꒗'
20    YiRadicalGep,
21    /// \u{a498}: '꒘'
22    YiRadicalMi,
23    /// \u{a499}: '꒙'
24    YiRadicalHxit,
25    /// \u{a49a}: '꒚'
26    YiRadicalLyr,
27    /// \u{a49b}: '꒛'
28    YiRadicalBbut,
29    /// \u{a49c}: '꒜'
30    YiRadicalMop,
31    /// \u{a49d}: '꒝'
32    YiRadicalYo,
33    /// \u{a49e}: '꒞'
34    YiRadicalPut,
35    /// \u{a49f}: '꒟'
36    YiRadicalHxuo,
37    /// \u{a4a0}: '꒠'
38    YiRadicalTat,
39    /// \u{a4a1}: '꒡'
40    YiRadicalGa,
41    /// \u{a4a2}: '꒢'
42    YiRadicalZup,
43    /// \u{a4a3}: '꒣'
44    YiRadicalCyt,
45    /// \u{a4a4}: '꒤'
46    YiRadicalDdur,
47    /// \u{a4a5}: '꒥'
48    YiRadicalBur,
49    /// \u{a4a6}: '꒦'
50    YiRadicalGguo,
51    /// \u{a4a7}: '꒧'
52    YiRadicalNyop,
53    /// \u{a4a8}: '꒨'
54    YiRadicalTu,
55    /// \u{a4a9}: '꒩'
56    YiRadicalOp,
57    /// \u{a4aa}: '꒪'
58    YiRadicalJjut,
59    /// \u{a4ab}: '꒫'
60    YiRadicalZot,
61    /// \u{a4ac}: '꒬'
62    YiRadicalPyt,
63    /// \u{a4ad}: '꒭'
64    YiRadicalHmo,
65    /// \u{a4ae}: '꒮'
66    YiRadicalYit,
67    /// \u{a4af}: '꒯'
68    YiRadicalVur,
69    /// \u{a4b0}: '꒰'
70    YiRadicalShy,
71    /// \u{a4b1}: '꒱'
72    YiRadicalVep,
73    /// \u{a4b2}: '꒲'
74    YiRadicalZa,
75    /// \u{a4b3}: '꒳'
76    YiRadicalJo,
77    /// \u{a4b4}: '꒴'
78    YiRadicalNzup,
79    /// \u{a4b5}: '꒵'
80    YiRadicalJjy,
81    /// \u{a4b6}: '꒶'
82    YiRadicalGot,
83    /// \u{a4b7}: '꒷'
84    YiRadicalJjie,
85    /// \u{a4b8}: '꒸'
86    YiRadicalWo,
87    /// \u{a4b9}: '꒹'
88    YiRadicalDu,
89    /// \u{a4ba}: '꒺'
90    YiRadicalShur,
91    /// \u{a4bb}: '꒻'
92    YiRadicalLie,
93    /// \u{a4bc}: '꒼'
94    YiRadicalCy,
95    /// \u{a4bd}: '꒽'
96    YiRadicalCuop,
97    /// \u{a4be}: '꒾'
98    YiRadicalCip,
99    /// \u{a4bf}: '꒿'
100    YiRadicalHxop,
101    /// \u{a4c0}: '꓀'
102    YiRadicalShat,
103    /// \u{a4c1}: '꓁'
104    YiRadicalZur,
105    /// \u{a4c2}: '꓂'
106    YiRadicalShop,
107    /// \u{a4c3}: '꓃'
108    YiRadicalChe,
109    /// \u{a4c4}: '꓄'
110    YiRadicalZziet,
111    /// \u{a4c5}: '꓅'
112    YiRadicalNbie,
113    /// \u{a4c6}: '꓆'
114    YiRadicalKe,
115}
116
117impl Into<char> for YiRadicals {
118    fn into(self) -> char {
119        match self {
120            YiRadicals::YiRadicalQot => '꒐',
121            YiRadicals::YiRadicalLi => '꒑',
122            YiRadicals::YiRadicalKit => '꒒',
123            YiRadicals::YiRadicalNyip => '꒓',
124            YiRadicals::YiRadicalCyp => '꒔',
125            YiRadicals::YiRadicalSsi => '꒕',
126            YiRadicals::YiRadicalGgop => '꒖',
127            YiRadicals::YiRadicalGep => '꒗',
128            YiRadicals::YiRadicalMi => '꒘',
129            YiRadicals::YiRadicalHxit => '꒙',
130            YiRadicals::YiRadicalLyr => '꒚',
131            YiRadicals::YiRadicalBbut => '꒛',
132            YiRadicals::YiRadicalMop => '꒜',
133            YiRadicals::YiRadicalYo => '꒝',
134            YiRadicals::YiRadicalPut => '꒞',
135            YiRadicals::YiRadicalHxuo => '꒟',
136            YiRadicals::YiRadicalTat => '꒠',
137            YiRadicals::YiRadicalGa => '꒡',
138            YiRadicals::YiRadicalZup => '꒢',
139            YiRadicals::YiRadicalCyt => '꒣',
140            YiRadicals::YiRadicalDdur => '꒤',
141            YiRadicals::YiRadicalBur => '꒥',
142            YiRadicals::YiRadicalGguo => '꒦',
143            YiRadicals::YiRadicalNyop => '꒧',
144            YiRadicals::YiRadicalTu => '꒨',
145            YiRadicals::YiRadicalOp => '꒩',
146            YiRadicals::YiRadicalJjut => '꒪',
147            YiRadicals::YiRadicalZot => '꒫',
148            YiRadicals::YiRadicalPyt => '꒬',
149            YiRadicals::YiRadicalHmo => '꒭',
150            YiRadicals::YiRadicalYit => '꒮',
151            YiRadicals::YiRadicalVur => '꒯',
152            YiRadicals::YiRadicalShy => '꒰',
153            YiRadicals::YiRadicalVep => '꒱',
154            YiRadicals::YiRadicalZa => '꒲',
155            YiRadicals::YiRadicalJo => '꒳',
156            YiRadicals::YiRadicalNzup => '꒴',
157            YiRadicals::YiRadicalJjy => '꒵',
158            YiRadicals::YiRadicalGot => '꒶',
159            YiRadicals::YiRadicalJjie => '꒷',
160            YiRadicals::YiRadicalWo => '꒸',
161            YiRadicals::YiRadicalDu => '꒹',
162            YiRadicals::YiRadicalShur => '꒺',
163            YiRadicals::YiRadicalLie => '꒻',
164            YiRadicals::YiRadicalCy => '꒼',
165            YiRadicals::YiRadicalCuop => '꒽',
166            YiRadicals::YiRadicalCip => '꒾',
167            YiRadicals::YiRadicalHxop => '꒿',
168            YiRadicals::YiRadicalShat => '꓀',
169            YiRadicals::YiRadicalZur => '꓁',
170            YiRadicals::YiRadicalShop => '꓂',
171            YiRadicals::YiRadicalChe => '꓃',
172            YiRadicals::YiRadicalZziet => '꓄',
173            YiRadicals::YiRadicalNbie => '꓅',
174            YiRadicals::YiRadicalKe => '꓆',
175        }
176    }
177}
178
179impl std::convert::TryFrom<char> for YiRadicals {
180    type Error = ();
181    fn try_from(c: char) -> Result<Self, Self::Error> {
182        match c {
183            '꒐' => Ok(YiRadicals::YiRadicalQot),
184            '꒑' => Ok(YiRadicals::YiRadicalLi),
185            '꒒' => Ok(YiRadicals::YiRadicalKit),
186            '꒓' => Ok(YiRadicals::YiRadicalNyip),
187            '꒔' => Ok(YiRadicals::YiRadicalCyp),
188            '꒕' => Ok(YiRadicals::YiRadicalSsi),
189            '꒖' => Ok(YiRadicals::YiRadicalGgop),
190            '꒗' => Ok(YiRadicals::YiRadicalGep),
191            '꒘' => Ok(YiRadicals::YiRadicalMi),
192            '꒙' => Ok(YiRadicals::YiRadicalHxit),
193            '꒚' => Ok(YiRadicals::YiRadicalLyr),
194            '꒛' => Ok(YiRadicals::YiRadicalBbut),
195            '꒜' => Ok(YiRadicals::YiRadicalMop),
196            '꒝' => Ok(YiRadicals::YiRadicalYo),
197            '꒞' => Ok(YiRadicals::YiRadicalPut),
198            '꒟' => Ok(YiRadicals::YiRadicalHxuo),
199            '꒠' => Ok(YiRadicals::YiRadicalTat),
200            '꒡' => Ok(YiRadicals::YiRadicalGa),
201            '꒢' => Ok(YiRadicals::YiRadicalZup),
202            '꒣' => Ok(YiRadicals::YiRadicalCyt),
203            '꒤' => Ok(YiRadicals::YiRadicalDdur),
204            '꒥' => Ok(YiRadicals::YiRadicalBur),
205            '꒦' => Ok(YiRadicals::YiRadicalGguo),
206            '꒧' => Ok(YiRadicals::YiRadicalNyop),
207            '꒨' => Ok(YiRadicals::YiRadicalTu),
208            '꒩' => Ok(YiRadicals::YiRadicalOp),
209            '꒪' => Ok(YiRadicals::YiRadicalJjut),
210            '꒫' => Ok(YiRadicals::YiRadicalZot),
211            '꒬' => Ok(YiRadicals::YiRadicalPyt),
212            '꒭' => Ok(YiRadicals::YiRadicalHmo),
213            '꒮' => Ok(YiRadicals::YiRadicalYit),
214            '꒯' => Ok(YiRadicals::YiRadicalVur),
215            '꒰' => Ok(YiRadicals::YiRadicalShy),
216            '꒱' => Ok(YiRadicals::YiRadicalVep),
217            '꒲' => Ok(YiRadicals::YiRadicalZa),
218            '꒳' => Ok(YiRadicals::YiRadicalJo),
219            '꒴' => Ok(YiRadicals::YiRadicalNzup),
220            '꒵' => Ok(YiRadicals::YiRadicalJjy),
221            '꒶' => Ok(YiRadicals::YiRadicalGot),
222            '꒷' => Ok(YiRadicals::YiRadicalJjie),
223            '꒸' => Ok(YiRadicals::YiRadicalWo),
224            '꒹' => Ok(YiRadicals::YiRadicalDu),
225            '꒺' => Ok(YiRadicals::YiRadicalShur),
226            '꒻' => Ok(YiRadicals::YiRadicalLie),
227            '꒼' => Ok(YiRadicals::YiRadicalCy),
228            '꒽' => Ok(YiRadicals::YiRadicalCuop),
229            '꒾' => Ok(YiRadicals::YiRadicalCip),
230            '꒿' => Ok(YiRadicals::YiRadicalHxop),
231            '꓀' => Ok(YiRadicals::YiRadicalShat),
232            '꓁' => Ok(YiRadicals::YiRadicalZur),
233            '꓂' => Ok(YiRadicals::YiRadicalShop),
234            '꓃' => Ok(YiRadicals::YiRadicalChe),
235            '꓄' => Ok(YiRadicals::YiRadicalZziet),
236            '꓅' => Ok(YiRadicals::YiRadicalNbie),
237            '꓆' => Ok(YiRadicals::YiRadicalKe),
238            _ => Err(()),
239        }
240    }
241}
242
243impl Into<u32> for YiRadicals {
244    fn into(self) -> u32 {
245        let c: char = self.into();
246        let hex = c
247            .escape_unicode()
248            .to_string()
249            .replace("\\u{", "")
250            .replace("}", "");
251        u32::from_str_radix(&hex, 16).unwrap()
252    }
253}
254
255impl std::convert::TryFrom<u32> for YiRadicals {
256    type Error = ();
257    fn try_from(u: u32) -> Result<Self, Self::Error> {
258        if let Ok(c) = char::try_from(u) {
259            Self::try_from(c)
260        } else {
261            Err(())
262        }
263    }
264}
265
266impl Iterator for YiRadicals {
267    type Item = Self;
268    fn next(&mut self) -> Option<Self> {
269        let index: u32 = (*self).into();
270        use std::convert::TryFrom;
271        Self::try_from(index + 1).ok()
272    }
273}
274
275impl YiRadicals {
276    /// The character with the lowest index in this unicode block
277    pub fn new() -> Self {
278        YiRadicals::YiRadicalQot
279    }
280
281    /// The character's name, in sentence case
282    pub fn name(&self) -> String {
283        let s = std::format!("YiRadicals{:#?}", self);
284        string_morph::to_sentence_case(&s)
285    }
286}