use chrono::{NaiveTime, Timelike}; pub fn pprint(t: NaiveTime) -> String { format!("{}:{:0>2}", t.hour(), t.minute()) } pub fn parse(t: &str) -> Option { match t.split(':').collect::>()[..] { [hours, minutes] => { if minutes.trim().is_empty() { NaiveTime::from_hms_opt(hours.parse().ok()?, 0, 0) } else { NaiveTime::from_hms_opt(hours.parse().ok()?, minutes.parse().ok()?, 0) } } _ => None, } }