Minor optimizations

master
Mark 2024-03-05 10:16:18 -08:00
parent 5f7696f865
commit 14c524c599
Signed by: Mark
GPG Key ID: C6D63995FE72FD80
1 changed files with 32 additions and 10 deletions

View File

@ -69,17 +69,39 @@ impl Symb {
self == &Self::Minus self == &Self::Minus
} }
pub fn from_char(c: char) -> Option<Self> { pub const fn to_char(&self) -> Option<char> {
match self {
Self::Plus => Some('+'),
Self::Minus => Some('-'),
Self::Times => Some('×'),
Self::Div => Some('÷'),
Self::Zero => Some('0'),
Self::Number(x) => match x.get() {
1 => Some('1'),
2 => Some('2'),
3 => Some('3'),
4 => Some('4'),
5 => Some('5'),
6 => Some('6'),
7 => Some('7'),
8 => Some('8'),
9 => Some('9'),
_ => None,
},
}
}
pub const fn from_char(c: char) -> Option<Self> {
match c { match c {
'1' => Some(Self::Number(NonZeroU8::new(1).unwrap())), '1' => Some(Self::Number(unsafe { NonZeroU8::new_unchecked(1) })),
'2' => Some(Self::Number(NonZeroU8::new(2).unwrap())), '2' => Some(Self::Number(unsafe { NonZeroU8::new_unchecked(2) })),
'3' => Some(Self::Number(NonZeroU8::new(3).unwrap())), '3' => Some(Self::Number(unsafe { NonZeroU8::new_unchecked(3) })),
'4' => Some(Self::Number(NonZeroU8::new(4).unwrap())), '4' => Some(Self::Number(unsafe { NonZeroU8::new_unchecked(4) })),
'5' => Some(Self::Number(NonZeroU8::new(5).unwrap())), '5' => Some(Self::Number(unsafe { NonZeroU8::new_unchecked(5) })),
'6' => Some(Self::Number(NonZeroU8::new(6).unwrap())), '6' => Some(Self::Number(unsafe { NonZeroU8::new_unchecked(6) })),
'7' => Some(Self::Number(NonZeroU8::new(7).unwrap())), '7' => Some(Self::Number(unsafe { NonZeroU8::new_unchecked(7) })),
'8' => Some(Self::Number(NonZeroU8::new(8).unwrap())), '8' => Some(Self::Number(unsafe { NonZeroU8::new_unchecked(8) })),
'9' => Some(Self::Number(NonZeroU8::new(9).unwrap())), '9' => Some(Self::Number(unsafe { NonZeroU8::new_unchecked(9) })),
'0' => Some(Self::Zero), '0' => Some(Self::Zero),
'+' => Some(Self::Plus), '+' => Some(Self::Plus),
'-' => Some(Self::Minus), '-' => Some(Self::Minus),