use core::fmt;
use crate::Hour;
impl fmt::Display for Hour {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "{}", self.to_en_str())
}
}
impl Hour {
pub fn en_name(&self) -> &str {
match self {
Hour::C0 => "12AM",
Hour::C1 => "01AM",
Hour::C2 => "02AM",
Hour::C3 => "03AM",
Hour::C4 => "04AM",
Hour::C5 => "05AM",
Hour::C6 => "06AM",
Hour::C7 => "07AM",
Hour::C8 => "08AM",
Hour::C9 => "09AM",
Hour::C10 => "10AM",
Hour::C11 => "11AM",
Hour::C12 => "12PM",
Hour::C13 => "01PM",
Hour::C14 => "02PM",
Hour::C15 => "03PM",
Hour::C16 => "04PM",
Hour::C17 => "05PM",
Hour::C18 => "06PM",
Hour::C19 => "07PM",
Hour::C20 => "08PM",
Hour::C21 => "09PM",
Hour::C22 => "10PM",
Hour::C23 => "11PM",
}
}
pub fn friendly_str(&self) -> &str {
match self {
Hour::C0 => "12AM - 1AM",
Hour::C1 => "1AM - 2AM",
Hour::C2 => "2AM - 3AM",
Hour::C3 => "3AM - 4AM",
Hour::C4 => "4AM - 5AM",
Hour::C5 => "5AM - 6AM",
Hour::C6 => "6AM - 7AM",
Hour::C7 => "7AM - 8AM",
Hour::C8 => "8AM - 9AM",
Hour::C9 => "9AM - 10AM",
Hour::C10 => "10AM - 11AM",
Hour::C11 => "11AM - 12PM",
Hour::C12 => "12PM - 1PM",
Hour::C13 => "1PM - 2PM",
Hour::C14 => "2PM - 3PM",
Hour::C15 => "3PM - 4PM",
Hour::C16 => "4PM - 5PM",
Hour::C17 => "5PM - 6PM",
Hour::C18 => "6PM - 7PM",
Hour::C19 => "7PM - 8PM",
Hour::C20 => "8PM - 9PM",
Hour::C21 => "9PM - 10PM",
Hour::C22 => "10PM - 11PM",
Hour::C23 => "11PM - 12AM",
}
}
pub fn to_en_str(&self) -> &str {
self.en_name()
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn en() {
assert_eq!(Hour::C0.en_name(), "12AM");
assert_eq!(Hour::C0.to_string(), "12AM");
}
#[test]
fn friendly_str() {
assert_eq!(Hour::C0.friendly_str(), "12AM - 1AM");
}
}