use std::fmt;
use std::convert::TryFrom;
#[derive(Debug,PartialEq,Eq,Hash,Clone)]
pub enum Rnum {
R0,
R1,
R2,
R3,
R4,
R5,
R6,
R7,
R8,
R9,
R10,
R11,
R12,
R13,
R14,
R15,
R16,
R17,
R18,
R19,
R20,
R21,
R22,
R23,
R24,
R25,
R26,
R27,
R28,
R29,
R30,
R31,
R32,
R33,
R34,
R35,
R36,
R37,
R38,
R39,
R40,
R41,
R42,
R43,
R44,
R45,
R46,
R47,
R48,
R49,
R50,
R51,
R52,
R53,
R54,
R55,
R56,
R57,
R58,
R59,
R60,
R61,
R62,
R63,
R64,
R65,
R66,
R67,
R68,
R69,
R70,
R71,
R72,
R73,
R74,
R75,
R76,
R77,
R78,
R79,
R80,
R81,
R82,
R83,
R84,
R85,
R86,
R87,
R88,
R89,
R90,
R91,
R92,
R93,
R94,
R95,
R96,
R97,
R98,
R99
}
impl TryFrom<u16> for Rnum {
type Error = ();
fn try_from(value: u16) -> Result<Self, Self::Error> {
Ok(match value {
0 => Self::R0,
1 => Self::R1,
2 => Self::R2,
3 => Self::R3,
4 => Self::R4,
5 => Self::R5,
6 => Self::R6,
7 => Self::R7,
8 => Self::R8,
9 => Self::R9,
10 => Self::R10,
11 => Self::R11,
12 => Self::R12,
13 => Self::R13,
14 => Self::R14,
15 => Self::R15,
16 => Self::R16,
17 => Self::R17,
18 => Self::R18,
19 => Self::R19,
20 => Self::R20,
21 => Self::R21,
22 => Self::R22,
23 => Self::R23,
24 => Self::R24,
25 => Self::R25,
26 => Self::R26,
27 => Self::R27,
28 => Self::R28,
29 => Self::R29,
30 => Self::R30,
31 => Self::R31,
32 => Self::R32,
33 => Self::R33,
34 => Self::R34,
35 => Self::R35,
36 => Self::R36,
37 => Self::R37,
38 => Self::R38,
39 => Self::R39,
40 => Self::R40,
41 => Self::R41,
42 => Self::R42,
43 => Self::R43,
44 => Self::R44,
45 => Self::R45,
46 => Self::R46,
47 => Self::R47,
48 => Self::R48,
49 => Self::R49,
50 => Self::R50,
51 => Self::R51,
52 => Self::R52,
53 => Self::R53,
54 => Self::R54,
55 => Self::R55,
56 => Self::R56,
57 => Self::R57,
58 => Self::R58,
59 => Self::R59,
60 => Self::R60,
61 => Self::R61,
62 => Self::R62,
63 => Self::R63,
64 => Self::R64,
65 => Self::R65,
66 => Self::R66,
67 => Self::R67,
68 => Self::R68,
69 => Self::R69,
70 => Self::R70,
71 => Self::R71,
72 => Self::R72,
73 => Self::R74,
74 => Self::R74,
75 => Self::R75,
76 => Self::R76,
77 => Self::R77,
78 => Self::R78,
79 => Self::R79,
80 => Self::R80,
81 => Self::R81,
82 => Self::R82,
83 => Self::R83,
84 => Self::R84,
85 => Self::R85,
86 => Self::R86,
87 => Self::R87,
88 => Self::R88,
89 => Self::R89,
90 => Self::R90,
91 => Self::R91,
92 => Self::R92,
93 => Self::R93,
94 => Self::R94,
95 => Self::R95,
96 => Self::R96,
97 => Self::R97,
98 => Self::R98,
99 => Self::R99,
_ => return Err(())
})
}
}
impl fmt::Display for Rnum {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", match self {
Self::R0 => "0",
Self::R1 => "1",
Self::R2 => "2",
Self::R3 => "3",
Self::R4 => "4",
Self::R5 => "5",
Self::R6 => "6",
Self::R7 => "7",
Self::R8 => "8",
Self::R9 => "9",
Self::R10 => "%10",
Self::R11 => "%11",
Self::R12 => "%12",
Self::R13 => "%13",
Self::R14 => "%14",
Self::R15 => "%15",
Self::R16 => "%16",
Self::R17 => "%17",
Self::R18 => "%18",
Self::R19 => "%19",
Self::R20 => "%20",
Self::R21 => "%21",
Self::R22 => "%22",
Self::R23 => "%23",
Self::R24 => "%24",
Self::R25 => "%25",
Self::R26 => "%26",
Self::R27 => "%27",
Self::R28 => "%28",
Self::R29 => "%29",
Self::R30 => "%30",
Self::R31 => "%31",
Self::R32 => "%32",
Self::R33 => "%33",
Self::R34 => "%34",
Self::R35 => "%35",
Self::R36 => "%36",
Self::R37 => "%37",
Self::R38 => "%38",
Self::R39 => "%39",
Self::R40 => "%40",
Self::R41 => "%41",
Self::R42 => "%42",
Self::R43 => "%43",
Self::R44 => "%44",
Self::R45 => "%45",
Self::R46 => "%46",
Self::R47 => "%47",
Self::R48 => "%48",
Self::R49 => "%49",
Self::R50 => "%50",
Self::R51 => "%51",
Self::R52 => "%52",
Self::R53 => "%53",
Self::R54 => "%54",
Self::R55 => "%55",
Self::R56 => "%56",
Self::R57 => "%57",
Self::R58 => "%58",
Self::R59 => "%59",
Self::R60 => "%60",
Self::R61 => "%61",
Self::R62 => "%62",
Self::R63 => "%63",
Self::R64 => "%64",
Self::R65 => "%65",
Self::R66 => "%66",
Self::R67 => "%67",
Self::R68 => "%68",
Self::R69 => "%69",
Self::R70 => "%70",
Self::R71 => "%71",
Self::R72 => "%72",
Self::R73 => "%73",
Self::R74 => "%74",
Self::R75 => "%75",
Self::R76 => "%76",
Self::R77 => "%77",
Self::R78 => "%78",
Self::R79 => "%79",
Self::R80 => "%80",
Self::R81 => "%81",
Self::R82 => "%82",
Self::R83 => "%83",
Self::R84 => "%84",
Self::R85 => "%85",
Self::R86 => "%86",
Self::R87 => "%87",
Self::R88 => "%88",
Self::R89 => "%89",
Self::R90 => "%90",
Self::R91 => "%91",
Self::R92 => "%92",
Self::R93 => "%93",
Self::R94 => "%94",
Self::R95 => "%95",
Self::R96 => "%96",
Self::R97 => "%97",
Self::R98 => "%98",
Self::R99 => "%99"
})
}
}