zabbix_utils/
lib.rs

1pub fn trans(input: &str) -> u32 {
2    if let Ok(result) = input.parse() {
3        return result;
4    }
5
6    if let Ok(x) = input.to_lowercase().parse::<humantime::Duration>() {
7        return x.as_secs() as u32;
8    }
9
10    0
11}
12
13#[cfg(test)]
14mod tests {
15    use super::*;
16
17    #[test]
18    fn test_trans() {
19        assert_eq!(trans("15"), 15);
20        assert_eq!(trans("15s"), 15);
21        assert_eq!(trans("15S"), 15);
22        assert_eq!(trans("5m"), 300);
23        assert_eq!(trans("2h"), 7200);
24        assert_eq!(trans("1d"), 86400);
25    }
26}