summaryrefslogtreecommitdiffstats
path: root/src/tui/enumerable.rs
blob: 2b31dc922f95e76b24b9d3180e4969e5f7f52d28 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
/// Borrowed from Haskell
/// Should be possible to auto derive
pub trait Enum: Sized {
    fn to_enum(&self) -> u8;
    fn from_enum(i: u8) -> Self;
    fn succ(&self) -> Self {
        Self::from_enum(self.to_enum() + 1)
    }
    fn pred(&self) -> Self {
        Self::from_enum(self.to_enum() - 1)
    }
}