unicode_types/generated/
supplementary_private_use_area_b.rs1
2#[derive(Debug, Clone, Copy, Hash, PartialEq, Eq)]
4pub enum SupplementaryPrivateUseAreaB {
5 Plane16PrivateUseFirst,
7 Plane16PrivateUseLast,
9}
10
11impl Into<char> for SupplementaryPrivateUseAreaB {
12 fn into(self) -> char {
13 match self {
14 SupplementaryPrivateUseAreaB::Plane16PrivateUseFirst => '',
15 SupplementaryPrivateUseAreaB::Plane16PrivateUseLast => '',
16 }
17 }
18}
19
20impl std::convert::TryFrom<char> for SupplementaryPrivateUseAreaB {
21 type Error = ();
22 fn try_from(c: char) -> Result<Self, Self::Error> {
23 match c {
24 '' => Ok(SupplementaryPrivateUseAreaB::Plane16PrivateUseFirst),
25 '' => Ok(SupplementaryPrivateUseAreaB::Plane16PrivateUseLast),
26 _ => Err(()),
27 }
28 }
29}
30
31impl Into<u32> for SupplementaryPrivateUseAreaB {
32 fn into(self) -> u32 {
33 let c: char = self.into();
34 let hex = c
35 .escape_unicode()
36 .to_string()
37 .replace("\\u{", "")
38 .replace("}", "");
39 u32::from_str_radix(&hex, 16).unwrap()
40 }
41}
42
43impl std::convert::TryFrom<u32> for SupplementaryPrivateUseAreaB {
44 type Error = ();
45 fn try_from(u: u32) -> Result<Self, Self::Error> {
46 if let Ok(c) = char::try_from(u) {
47 Self::try_from(c)
48 } else {
49 Err(())
50 }
51 }
52}
53
54impl Iterator for SupplementaryPrivateUseAreaB {
55 type Item = Self;
56 fn next(&mut self) -> Option<Self> {
57 let index: u32 = (*self).into();
58 use std::convert::TryFrom;
59 Self::try_from(index + 1).ok()
60 }
61}
62
63impl SupplementaryPrivateUseAreaB {
64 pub fn new() -> Self {
66 SupplementaryPrivateUseAreaB::Plane16PrivateUseFirst
67 }
68
69 pub fn name(&self) -> String {
71 let s = std::format!("SupplementaryPrivateUseAreaB{:#?}", self);
72 string_morph::to_sentence_case(&s)
73 }
74}