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)
}
}
|