runic 1.1.0

Stupid string to duration converter
Documentation
const SECOND: u64 = 1;
const MINUTE: u64 = SECOND * 60;
const HOUR: u64 = MINUTE * 60;

pub fn hms(seconds: u64) -> (u64, u64, u64) {
    let mut secs = seconds;

    let hours = secs / HOUR;
    secs -= hours * HOUR;

    let minutes = secs / MINUTE;
    secs -= minutes * MINUTE;

    (hours, minutes, secs)
}

#[cfg(test)]
mod hms {
    use super::*;
    use pretty_assertions::assert_eq;

    #[test]
    fn _1s() {
        assert_eq!(hms(1), (0, 0, 1));
    }

    #[test]
    fn _1m() {
        assert_eq!(hms(60), (0, 1, 0));
    }

    #[test]
    fn _1h() {
        assert_eq!(hms(3600), (1, 0, 0));
    }

    #[test]
    fn _1h_1m_1s() {
        assert_eq!(hms(3661), (1, 1, 1));
    }

    #[test]
    fn _2h_37m_11s() {
        assert_eq!(hms((2 * 3600) + (37 * 60) + 11), (2, 37, 11));
    }

    #[test]
    fn _5h_11m() {
        assert_eq!(hms((5 * 3600) + (11 * 60)), (5, 11, 0));
    }
}