feat(domain): add Weekday enum with From<chrono::Weekday>
This commit is contained in:
@@ -138,3 +138,55 @@ impl Default for RecyclePolicy {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Day of week, used as key in weekly schedule configs.
|
||||||
|
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
|
||||||
|
#[serde(rename_all = "lowercase")]
|
||||||
|
pub enum Weekday {
|
||||||
|
Monday,
|
||||||
|
Tuesday,
|
||||||
|
Wednesday,
|
||||||
|
Thursday,
|
||||||
|
Friday,
|
||||||
|
Saturday,
|
||||||
|
Sunday,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl From<chrono::Weekday> for Weekday {
|
||||||
|
fn from(w: chrono::Weekday) -> Self {
|
||||||
|
match w {
|
||||||
|
chrono::Weekday::Mon => Weekday::Monday,
|
||||||
|
chrono::Weekday::Tue => Weekday::Tuesday,
|
||||||
|
chrono::Weekday::Wed => Weekday::Wednesday,
|
||||||
|
chrono::Weekday::Thu => Weekday::Thursday,
|
||||||
|
chrono::Weekday::Fri => Weekday::Friday,
|
||||||
|
chrono::Weekday::Sat => Weekday::Saturday,
|
||||||
|
chrono::Weekday::Sun => Weekday::Sunday,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Weekday {
|
||||||
|
pub fn all() -> [Weekday; 7] {
|
||||||
|
[
|
||||||
|
Weekday::Monday, Weekday::Tuesday, Weekday::Wednesday,
|
||||||
|
Weekday::Thursday, Weekday::Friday, Weekday::Saturday, Weekday::Sunday,
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod weekday_tests {
|
||||||
|
use super::*;
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn from_chrono_weekday_roundtrip() {
|
||||||
|
assert_eq!(Weekday::from(chrono::Weekday::Mon), Weekday::Monday);
|
||||||
|
assert_eq!(Weekday::from(chrono::Weekday::Sun), Weekday::Sunday);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn all_has_seven_days() {
|
||||||
|
assert_eq!(Weekday::all().len(), 7);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user