use std::fmt;
use crate::*;
#[derive(Debug, Eq, PartialEq, Ord, PartialOrd)]
pub enum Day {
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday,
}
impl Day {
pub fn from_anchor(anchor: usize) -> Day {
match anchor % 7 {
1 => Monday,
2 => Tuesday,
3 => Wednesday,
4 => Thursday,
5 => Friday,
6 => Saturday,
0 => Sunday,
_ => unreachable!(),
}
}
}
impl Default for Day {
fn default() -> Day { Sunday }
}
impl fmt::Display for Day {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "{:?}", self)
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_day_from_anchor() {
assert_eq!(Sunday, Day::from_anchor(0));
assert_eq!(Monday, Day::from_anchor(1));
assert_eq!(Friday, Day::from_anchor(5));
assert_eq!(Saturday, Day::from_anchor(6));
}
}