use std::num::NonZeroUsize;
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
pub enum KeyToken {
Char(char),
Ctrl(char),
Escape,
Enter,
Backspace,
}
impl KeyToken {
#[must_use]
pub fn count_digit(self) -> Option<usize> {
let Self::Char(character) = self else {
return None;
};
character.to_digit(10).map(|digit| digit as usize)
}
#[must_use]
pub fn non_zero_count_digit(self) -> Option<NonZeroUsize> {
NonZeroUsize::new(self.count_digit()?)
}
}