unicode_types/generated/
combining_diacritical_marks_for_symbols.rs

1
2/// An enum to represent all characters in the CombiningDiacriticalMarksforSymbols block.
3#[derive(Debug, Clone, Copy, Hash, PartialEq, Eq)]
4pub enum CombiningDiacriticalMarksforSymbols {
5    /// \u{20d0}: '⃐'
6    CombiningLeftHarpoonAbove,
7    /// \u{20d1}: '⃑'
8    CombiningRightHarpoonAbove,
9    /// \u{20d2}: '⃒'
10    CombiningLongVerticalLineOverlay,
11    /// \u{20d3}: '⃓'
12    CombiningShortVerticalLineOverlay,
13    /// \u{20d4}: '⃔'
14    CombiningAnticlockwiseArrowAbove,
15    /// \u{20d5}: '⃕'
16    CombiningClockwiseArrowAbove,
17    /// \u{20d6}: '⃖'
18    CombiningLeftArrowAbove,
19    /// \u{20d7}: '⃗'
20    CombiningRightArrowAbove,
21    /// \u{20d8}: '⃘'
22    CombiningRingOverlay,
23    /// \u{20d9}: '⃙'
24    CombiningClockwiseRingOverlay,
25    /// \u{20da}: '⃚'
26    CombiningAnticlockwiseRingOverlay,
27    /// \u{20db}: '⃛'
28    CombiningThreeDotsAbove,
29    /// \u{20dc}: '⃜'
30    CombiningFourDotsAbove,
31    /// \u{20dd}: '⃝'
32    CombiningEnclosingCircle,
33    /// \u{20de}: '⃞'
34    CombiningEnclosingSquare,
35    /// \u{20df}: '⃟'
36    CombiningEnclosingDiamond,
37    /// \u{20e0}: '⃠'
38    CombiningEnclosingCircleBackslash,
39    /// \u{20e1}: '⃡'
40    CombiningLeftRightArrowAbove,
41    /// \u{20e2}: '⃢'
42    CombiningEnclosingScreen,
43    /// \u{20e3}: '⃣'
44    CombiningEnclosingKeycap,
45    /// \u{20e4}: '⃤'
46    CombiningEnclosingUpwardPointingTriangle,
47    /// \u{20e5}: '⃥'
48    CombiningReverseSolidusOverlay,
49    /// \u{20e6}: '⃦'
50    CombiningDoubleVerticalStrokeOverlay,
51    /// \u{20e7}: '⃧'
52    CombiningAnnuitySymbol,
53    /// \u{20e8}: '⃨'
54    CombiningTripleUnderdot,
55    /// \u{20e9}: '⃩'
56    CombiningWideBridgeAbove,
57    /// \u{20ea}: '⃪'
58    CombiningLeftwardsArrowOverlay,
59    /// \u{20eb}: '⃫'
60    CombiningLongDoubleSolidusOverlay,
61    /// \u{20ec}: '⃬'
62    CombiningRightwardsHarpoonWithBarbDownwards,
63    /// \u{20ed}: '⃭'
64    CombiningLeftwardsHarpoonWithBarbDownwards,
65    /// \u{20ee}: '⃮'
66    CombiningLeftArrowBelow,
67    /// \u{20ef}: '⃯'
68    CombiningRightArrowBelow,
69    /// \u{20f0}: '⃰'
70    CombiningAsteriskAbove,
71}
72
73impl Into<char> for CombiningDiacriticalMarksforSymbols {
74    fn into(self) -> char {
75        match self {
76            CombiningDiacriticalMarksforSymbols::CombiningLeftHarpoonAbove => '⃐',
77            CombiningDiacriticalMarksforSymbols::CombiningRightHarpoonAbove => '⃑',
78            CombiningDiacriticalMarksforSymbols::CombiningLongVerticalLineOverlay => '⃒',
79            CombiningDiacriticalMarksforSymbols::CombiningShortVerticalLineOverlay => '⃓',
80            CombiningDiacriticalMarksforSymbols::CombiningAnticlockwiseArrowAbove => '⃔',
81            CombiningDiacriticalMarksforSymbols::CombiningClockwiseArrowAbove => '⃕',
82            CombiningDiacriticalMarksforSymbols::CombiningLeftArrowAbove => '⃖',
83            CombiningDiacriticalMarksforSymbols::CombiningRightArrowAbove => '⃗',
84            CombiningDiacriticalMarksforSymbols::CombiningRingOverlay => '⃘',
85            CombiningDiacriticalMarksforSymbols::CombiningClockwiseRingOverlay => '⃙',
86            CombiningDiacriticalMarksforSymbols::CombiningAnticlockwiseRingOverlay => '⃚',
87            CombiningDiacriticalMarksforSymbols::CombiningThreeDotsAbove => '⃛',
88            CombiningDiacriticalMarksforSymbols::CombiningFourDotsAbove => '⃜',
89            CombiningDiacriticalMarksforSymbols::CombiningEnclosingCircle => '⃝',
90            CombiningDiacriticalMarksforSymbols::CombiningEnclosingSquare => '⃞',
91            CombiningDiacriticalMarksforSymbols::CombiningEnclosingDiamond => '⃟',
92            CombiningDiacriticalMarksforSymbols::CombiningEnclosingCircleBackslash => '⃠',
93            CombiningDiacriticalMarksforSymbols::CombiningLeftRightArrowAbove => '⃡',
94            CombiningDiacriticalMarksforSymbols::CombiningEnclosingScreen => '⃢',
95            CombiningDiacriticalMarksforSymbols::CombiningEnclosingKeycap => '⃣',
96            CombiningDiacriticalMarksforSymbols::CombiningEnclosingUpwardPointingTriangle => '⃤',
97            CombiningDiacriticalMarksforSymbols::CombiningReverseSolidusOverlay => '⃥',
98            CombiningDiacriticalMarksforSymbols::CombiningDoubleVerticalStrokeOverlay => '⃦',
99            CombiningDiacriticalMarksforSymbols::CombiningAnnuitySymbol => '⃧',
100            CombiningDiacriticalMarksforSymbols::CombiningTripleUnderdot => '⃨',
101            CombiningDiacriticalMarksforSymbols::CombiningWideBridgeAbove => '⃩',
102            CombiningDiacriticalMarksforSymbols::CombiningLeftwardsArrowOverlay => '⃪',
103            CombiningDiacriticalMarksforSymbols::CombiningLongDoubleSolidusOverlay => '⃫',
104            CombiningDiacriticalMarksforSymbols::CombiningRightwardsHarpoonWithBarbDownwards => '⃬',
105            CombiningDiacriticalMarksforSymbols::CombiningLeftwardsHarpoonWithBarbDownwards => '⃭',
106            CombiningDiacriticalMarksforSymbols::CombiningLeftArrowBelow => '⃮',
107            CombiningDiacriticalMarksforSymbols::CombiningRightArrowBelow => '⃯',
108            CombiningDiacriticalMarksforSymbols::CombiningAsteriskAbove => '⃰',
109        }
110    }
111}
112
113impl std::convert::TryFrom<char> for CombiningDiacriticalMarksforSymbols {
114    type Error = ();
115    fn try_from(c: char) -> Result<Self, Self::Error> {
116        match c {
117            '⃐' => Ok(CombiningDiacriticalMarksforSymbols::CombiningLeftHarpoonAbove),
118            '⃑' => Ok(CombiningDiacriticalMarksforSymbols::CombiningRightHarpoonAbove),
119            '⃒' => Ok(CombiningDiacriticalMarksforSymbols::CombiningLongVerticalLineOverlay),
120            '⃓' => Ok(CombiningDiacriticalMarksforSymbols::CombiningShortVerticalLineOverlay),
121            '⃔' => Ok(CombiningDiacriticalMarksforSymbols::CombiningAnticlockwiseArrowAbove),
122            '⃕' => Ok(CombiningDiacriticalMarksforSymbols::CombiningClockwiseArrowAbove),
123            '⃖' => Ok(CombiningDiacriticalMarksforSymbols::CombiningLeftArrowAbove),
124            '⃗' => Ok(CombiningDiacriticalMarksforSymbols::CombiningRightArrowAbove),
125            '⃘' => Ok(CombiningDiacriticalMarksforSymbols::CombiningRingOverlay),
126            '⃙' => Ok(CombiningDiacriticalMarksforSymbols::CombiningClockwiseRingOverlay),
127            '⃚' => Ok(CombiningDiacriticalMarksforSymbols::CombiningAnticlockwiseRingOverlay),
128            '⃛' => Ok(CombiningDiacriticalMarksforSymbols::CombiningThreeDotsAbove),
129            '⃜' => Ok(CombiningDiacriticalMarksforSymbols::CombiningFourDotsAbove),
130            '⃝' => Ok(CombiningDiacriticalMarksforSymbols::CombiningEnclosingCircle),
131            '⃞' => Ok(CombiningDiacriticalMarksforSymbols::CombiningEnclosingSquare),
132            '⃟' => Ok(CombiningDiacriticalMarksforSymbols::CombiningEnclosingDiamond),
133            '⃠' => Ok(CombiningDiacriticalMarksforSymbols::CombiningEnclosingCircleBackslash),
134            '⃡' => Ok(CombiningDiacriticalMarksforSymbols::CombiningLeftRightArrowAbove),
135            '⃢' => Ok(CombiningDiacriticalMarksforSymbols::CombiningEnclosingScreen),
136            '⃣' => Ok(CombiningDiacriticalMarksforSymbols::CombiningEnclosingKeycap),
137            '⃤' => Ok(CombiningDiacriticalMarksforSymbols::CombiningEnclosingUpwardPointingTriangle),
138            '⃥' => Ok(CombiningDiacriticalMarksforSymbols::CombiningReverseSolidusOverlay),
139            '⃦' => Ok(CombiningDiacriticalMarksforSymbols::CombiningDoubleVerticalStrokeOverlay),
140            '⃧' => Ok(CombiningDiacriticalMarksforSymbols::CombiningAnnuitySymbol),
141            '⃨' => Ok(CombiningDiacriticalMarksforSymbols::CombiningTripleUnderdot),
142            '⃩' => Ok(CombiningDiacriticalMarksforSymbols::CombiningWideBridgeAbove),
143            '⃪' => Ok(CombiningDiacriticalMarksforSymbols::CombiningLeftwardsArrowOverlay),
144            '⃫' => Ok(CombiningDiacriticalMarksforSymbols::CombiningLongDoubleSolidusOverlay),
145            '⃬' => Ok(CombiningDiacriticalMarksforSymbols::CombiningRightwardsHarpoonWithBarbDownwards),
146            '⃭' => Ok(CombiningDiacriticalMarksforSymbols::CombiningLeftwardsHarpoonWithBarbDownwards),
147            '⃮' => Ok(CombiningDiacriticalMarksforSymbols::CombiningLeftArrowBelow),
148            '⃯' => Ok(CombiningDiacriticalMarksforSymbols::CombiningRightArrowBelow),
149            '⃰' => Ok(CombiningDiacriticalMarksforSymbols::CombiningAsteriskAbove),
150            _ => Err(()),
151        }
152    }
153}
154
155impl Into<u32> for CombiningDiacriticalMarksforSymbols {
156    fn into(self) -> u32 {
157        let c: char = self.into();
158        let hex = c
159            .escape_unicode()
160            .to_string()
161            .replace("\\u{", "")
162            .replace("}", "");
163        u32::from_str_radix(&hex, 16).unwrap()
164    }
165}
166
167impl std::convert::TryFrom<u32> for CombiningDiacriticalMarksforSymbols {
168    type Error = ();
169    fn try_from(u: u32) -> Result<Self, Self::Error> {
170        if let Ok(c) = char::try_from(u) {
171            Self::try_from(c)
172        } else {
173            Err(())
174        }
175    }
176}
177
178impl Iterator for CombiningDiacriticalMarksforSymbols {
179    type Item = Self;
180    fn next(&mut self) -> Option<Self> {
181        let index: u32 = (*self).into();
182        use std::convert::TryFrom;
183        Self::try_from(index + 1).ok()
184    }
185}
186
187impl CombiningDiacriticalMarksforSymbols {
188    /// The character with the lowest index in this unicode block
189    pub fn new() -> Self {
190        CombiningDiacriticalMarksforSymbols::CombiningLeftHarpoonAbove
191    }
192
193    /// The character's name, in sentence case
194    pub fn name(&self) -> String {
195        let s = std::format!("CombiningDiacriticalMarksforSymbols{:#?}", self);
196        string_morph::to_sentence_case(&s)
197    }
198}