unicode_types/generated/
glagolitic_supplement.rs

1
2/// An enum to represent all characters in the GlagoliticSupplement block.
3#[derive(Debug, Clone, Copy, Hash, PartialEq, Eq)]
4pub enum GlagoliticSupplement {
5    /// \u{1e000}: '𞀀'
6    CombiningGlagoliticLetterAzu,
7    /// \u{1e001}: '𞀁'
8    CombiningGlagoliticLetterBuky,
9    /// \u{1e002}: '𞀂'
10    CombiningGlagoliticLetterVede,
11    /// \u{1e003}: '𞀃'
12    CombiningGlagoliticLetterGlagoli,
13    /// \u{1e004}: '𞀄'
14    CombiningGlagoliticLetterDobro,
15    /// \u{1e005}: '𞀅'
16    CombiningGlagoliticLetterYestu,
17    /// \u{1e006}: '𞀆'
18    CombiningGlagoliticLetterZhivete,
19    /// \u{1e008}: '𞀈'
20    CombiningGlagoliticLetterZemlja,
21    /// \u{1e009}: '𞀉'
22    CombiningGlagoliticLetterIzhe,
23    /// \u{1e00a}: '𞀊'
24    CombiningGlagoliticLetterInitialIzhe,
25    /// \u{1e00b}: '𞀋'
26    CombiningGlagoliticLetterI,
27    /// \u{1e00c}: '𞀌'
28    CombiningGlagoliticLetterDjervi,
29    /// \u{1e00d}: '𞀍'
30    CombiningGlagoliticLetterKako,
31    /// \u{1e00e}: '𞀎'
32    CombiningGlagoliticLetterLjudije,
33    /// \u{1e00f}: '𞀏'
34    CombiningGlagoliticLetterMyslite,
35    /// \u{1e010}: '𞀐'
36    CombiningGlagoliticLetterNashi,
37    /// \u{1e011}: '𞀑'
38    CombiningGlagoliticLetterOnu,
39    /// \u{1e012}: '𞀒'
40    CombiningGlagoliticLetterPokoji,
41    /// \u{1e013}: '𞀓'
42    CombiningGlagoliticLetterRitsi,
43    /// \u{1e014}: '𞀔'
44    CombiningGlagoliticLetterSlovo,
45    /// \u{1e015}: '𞀕'
46    CombiningGlagoliticLetterTvrido,
47    /// \u{1e016}: '𞀖'
48    CombiningGlagoliticLetterUku,
49    /// \u{1e017}: '𞀗'
50    CombiningGlagoliticLetterFritu,
51    /// \u{1e018}: '𞀘'
52    CombiningGlagoliticLetterHeru,
53    /// \u{1e01b}: '𞀛'
54    CombiningGlagoliticLetterShta,
55    /// \u{1e01c}: '𞀜'
56    CombiningGlagoliticLetterTsi,
57    /// \u{1e01d}: '𞀝'
58    CombiningGlagoliticLetterChrivi,
59    /// \u{1e01e}: '𞀞'
60    CombiningGlagoliticLetterSha,
61    /// \u{1e01f}: '𞀟'
62    CombiningGlagoliticLetterYeru,
63    /// \u{1e020}: '𞀠'
64    CombiningGlagoliticLetterYeri,
65    /// \u{1e021}: '𞀡'
66    CombiningGlagoliticLetterYati,
67    /// \u{1e023}: '𞀣'
68    CombiningGlagoliticLetterYu,
69    /// \u{1e024}: '𞀤'
70    CombiningGlagoliticLetterSmallYus,
71    /// \u{1e026}: '𞀦'
72    CombiningGlagoliticLetterYo,
73    /// \u{1e027}: '𞀧'
74    CombiningGlagoliticLetterIotatedSmallYus,
75    /// \u{1e028}: '𞀨'
76    CombiningGlagoliticLetterBigYus,
77    /// \u{1e029}: '𞀩'
78    CombiningGlagoliticLetterIotatedBigYus,
79    /// \u{1e02a}: '𞀪'
80    CombiningGlagoliticLetterFita,
81}
82
83impl Into<char> for GlagoliticSupplement {
84    fn into(self) -> char {
85        match self {
86            GlagoliticSupplement::CombiningGlagoliticLetterAzu => '𞀀',
87            GlagoliticSupplement::CombiningGlagoliticLetterBuky => '𞀁',
88            GlagoliticSupplement::CombiningGlagoliticLetterVede => '𞀂',
89            GlagoliticSupplement::CombiningGlagoliticLetterGlagoli => '𞀃',
90            GlagoliticSupplement::CombiningGlagoliticLetterDobro => '𞀄',
91            GlagoliticSupplement::CombiningGlagoliticLetterYestu => '𞀅',
92            GlagoliticSupplement::CombiningGlagoliticLetterZhivete => '𞀆',
93            GlagoliticSupplement::CombiningGlagoliticLetterZemlja => '𞀈',
94            GlagoliticSupplement::CombiningGlagoliticLetterIzhe => '𞀉',
95            GlagoliticSupplement::CombiningGlagoliticLetterInitialIzhe => '𞀊',
96            GlagoliticSupplement::CombiningGlagoliticLetterI => '𞀋',
97            GlagoliticSupplement::CombiningGlagoliticLetterDjervi => '𞀌',
98            GlagoliticSupplement::CombiningGlagoliticLetterKako => '𞀍',
99            GlagoliticSupplement::CombiningGlagoliticLetterLjudije => '𞀎',
100            GlagoliticSupplement::CombiningGlagoliticLetterMyslite => '𞀏',
101            GlagoliticSupplement::CombiningGlagoliticLetterNashi => '𞀐',
102            GlagoliticSupplement::CombiningGlagoliticLetterOnu => '𞀑',
103            GlagoliticSupplement::CombiningGlagoliticLetterPokoji => '𞀒',
104            GlagoliticSupplement::CombiningGlagoliticLetterRitsi => '𞀓',
105            GlagoliticSupplement::CombiningGlagoliticLetterSlovo => '𞀔',
106            GlagoliticSupplement::CombiningGlagoliticLetterTvrido => '𞀕',
107            GlagoliticSupplement::CombiningGlagoliticLetterUku => '𞀖',
108            GlagoliticSupplement::CombiningGlagoliticLetterFritu => '𞀗',
109            GlagoliticSupplement::CombiningGlagoliticLetterHeru => '𞀘',
110            GlagoliticSupplement::CombiningGlagoliticLetterShta => '𞀛',
111            GlagoliticSupplement::CombiningGlagoliticLetterTsi => '𞀜',
112            GlagoliticSupplement::CombiningGlagoliticLetterChrivi => '𞀝',
113            GlagoliticSupplement::CombiningGlagoliticLetterSha => '𞀞',
114            GlagoliticSupplement::CombiningGlagoliticLetterYeru => '𞀟',
115            GlagoliticSupplement::CombiningGlagoliticLetterYeri => '𞀠',
116            GlagoliticSupplement::CombiningGlagoliticLetterYati => '𞀡',
117            GlagoliticSupplement::CombiningGlagoliticLetterYu => '𞀣',
118            GlagoliticSupplement::CombiningGlagoliticLetterSmallYus => '𞀤',
119            GlagoliticSupplement::CombiningGlagoliticLetterYo => '𞀦',
120            GlagoliticSupplement::CombiningGlagoliticLetterIotatedSmallYus => '𞀧',
121            GlagoliticSupplement::CombiningGlagoliticLetterBigYus => '𞀨',
122            GlagoliticSupplement::CombiningGlagoliticLetterIotatedBigYus => '𞀩',
123            GlagoliticSupplement::CombiningGlagoliticLetterFita => '𞀪',
124        }
125    }
126}
127
128impl std::convert::TryFrom<char> for GlagoliticSupplement {
129    type Error = ();
130    fn try_from(c: char) -> Result<Self, Self::Error> {
131        match c {
132            '𞀀' => Ok(GlagoliticSupplement::CombiningGlagoliticLetterAzu),
133            '𞀁' => Ok(GlagoliticSupplement::CombiningGlagoliticLetterBuky),
134            '𞀂' => Ok(GlagoliticSupplement::CombiningGlagoliticLetterVede),
135            '𞀃' => Ok(GlagoliticSupplement::CombiningGlagoliticLetterGlagoli),
136            '𞀄' => Ok(GlagoliticSupplement::CombiningGlagoliticLetterDobro),
137            '𞀅' => Ok(GlagoliticSupplement::CombiningGlagoliticLetterYestu),
138            '𞀆' => Ok(GlagoliticSupplement::CombiningGlagoliticLetterZhivete),
139            '𞀈' => Ok(GlagoliticSupplement::CombiningGlagoliticLetterZemlja),
140            '𞀉' => Ok(GlagoliticSupplement::CombiningGlagoliticLetterIzhe),
141            '𞀊' => Ok(GlagoliticSupplement::CombiningGlagoliticLetterInitialIzhe),
142            '𞀋' => Ok(GlagoliticSupplement::CombiningGlagoliticLetterI),
143            '𞀌' => Ok(GlagoliticSupplement::CombiningGlagoliticLetterDjervi),
144            '𞀍' => Ok(GlagoliticSupplement::CombiningGlagoliticLetterKako),
145            '𞀎' => Ok(GlagoliticSupplement::CombiningGlagoliticLetterLjudije),
146            '𞀏' => Ok(GlagoliticSupplement::CombiningGlagoliticLetterMyslite),
147            '𞀐' => Ok(GlagoliticSupplement::CombiningGlagoliticLetterNashi),
148            '𞀑' => Ok(GlagoliticSupplement::CombiningGlagoliticLetterOnu),
149            '𞀒' => Ok(GlagoliticSupplement::CombiningGlagoliticLetterPokoji),
150            '𞀓' => Ok(GlagoliticSupplement::CombiningGlagoliticLetterRitsi),
151            '𞀔' => Ok(GlagoliticSupplement::CombiningGlagoliticLetterSlovo),
152            '𞀕' => Ok(GlagoliticSupplement::CombiningGlagoliticLetterTvrido),
153            '𞀖' => Ok(GlagoliticSupplement::CombiningGlagoliticLetterUku),
154            '𞀗' => Ok(GlagoliticSupplement::CombiningGlagoliticLetterFritu),
155            '𞀘' => Ok(GlagoliticSupplement::CombiningGlagoliticLetterHeru),
156            '𞀛' => Ok(GlagoliticSupplement::CombiningGlagoliticLetterShta),
157            '𞀜' => Ok(GlagoliticSupplement::CombiningGlagoliticLetterTsi),
158            '𞀝' => Ok(GlagoliticSupplement::CombiningGlagoliticLetterChrivi),
159            '𞀞' => Ok(GlagoliticSupplement::CombiningGlagoliticLetterSha),
160            '𞀟' => Ok(GlagoliticSupplement::CombiningGlagoliticLetterYeru),
161            '𞀠' => Ok(GlagoliticSupplement::CombiningGlagoliticLetterYeri),
162            '𞀡' => Ok(GlagoliticSupplement::CombiningGlagoliticLetterYati),
163            '𞀣' => Ok(GlagoliticSupplement::CombiningGlagoliticLetterYu),
164            '𞀤' => Ok(GlagoliticSupplement::CombiningGlagoliticLetterSmallYus),
165            '𞀦' => Ok(GlagoliticSupplement::CombiningGlagoliticLetterYo),
166            '𞀧' => Ok(GlagoliticSupplement::CombiningGlagoliticLetterIotatedSmallYus),
167            '𞀨' => Ok(GlagoliticSupplement::CombiningGlagoliticLetterBigYus),
168            '𞀩' => Ok(GlagoliticSupplement::CombiningGlagoliticLetterIotatedBigYus),
169            '𞀪' => Ok(GlagoliticSupplement::CombiningGlagoliticLetterFita),
170            _ => Err(()),
171        }
172    }
173}
174
175impl Into<u32> for GlagoliticSupplement {
176    fn into(self) -> u32 {
177        let c: char = self.into();
178        let hex = c
179            .escape_unicode()
180            .to_string()
181            .replace("\\u{", "")
182            .replace("}", "");
183        u32::from_str_radix(&hex, 16).unwrap()
184    }
185}
186
187impl std::convert::TryFrom<u32> for GlagoliticSupplement {
188    type Error = ();
189    fn try_from(u: u32) -> Result<Self, Self::Error> {
190        if let Ok(c) = char::try_from(u) {
191            Self::try_from(c)
192        } else {
193            Err(())
194        }
195    }
196}
197
198impl Iterator for GlagoliticSupplement {
199    type Item = Self;
200    fn next(&mut self) -> Option<Self> {
201        let index: u32 = (*self).into();
202        use std::convert::TryFrom;
203        Self::try_from(index + 1).ok()
204    }
205}
206
207impl GlagoliticSupplement {
208    /// The character with the lowest index in this unicode block
209    pub fn new() -> Self {
210        GlagoliticSupplement::CombiningGlagoliticLetterAzu
211    }
212
213    /// The character's name, in sentence case
214    pub fn name(&self) -> String {
215        let s = std::format!("GlagoliticSupplement{:#?}", self);
216        string_morph::to_sentence_case(&s)
217    }
218}