Function try_parse_duration

Source
pub fn try_parse_duration(t: &str) -> Result<Duration, String>
Expand description

Parse a duration from a string. This is used for CLI parameter parsing in programs generated by LFC, specifically, to parse main parameters with time type, and scheduler options with time type.

ยงTests

use reactor_rt::try_parse_duration;
use std::time::Duration;

assert_eq!(try_parse_duration("3 ms"),   Ok(Duration::from_millis(3)));
assert_eq!(try_parse_duration("3ms"),    Ok(Duration::from_millis(3)));
assert_eq!(try_parse_duration("5us"),    Ok(Duration::from_micros(5)));
assert_eq!(try_parse_duration("30ns"),   Ok(Duration::from_nanos(30)));
assert_eq!(try_parse_duration("30nsec"), Ok(Duration::from_nanos(30)));
assert_eq!(try_parse_duration("30secs"), Ok(Duration::from_secs(30)));
// unit is not required for zero
assert_eq!(try_parse_duration("0"), Ok(Duration::from_secs(0)));

assert_eq!(try_parse_duration(""), Err("cannot parse empty string".into()));
assert_eq!(try_parse_duration("30"), Err("time unit required".into()));
assert_eq!(try_parse_duration("30000000000000000000000ns"), Err("number too large to fit in target type".into()));