pub fn parse(
source: &str,
default_unit: Option<TimeUnit>,
max: Option<Duration>,
) -> Result<Duration, ParseError>
Expand description
Parse the source
string into a Duration
This method does not include the time units for nano seconds unlike the
TimeSpanParser::parse_nanos
method. The parser saturates at the maximum Duration
of
u64::MAX
micro seconds if not specified otherwise. Optionally, it’s possible to specify a
different default time unit than TimeUnit::Second
§Panics
This method panics if max
is a a negative Duration
.
§Errors
Returns a ParseError
if an error during the parsing process occurred
§Examples
use fundu::{Duration, TimeUnit};
use fundu_systemd::{parse, SYSTEMD_MAX_MICRO_DURATION};
assert_eq!(
parse("2hours", None, None),
Ok(Duration::positive(2 * 60 * 60, 0))
);
assert_eq!(
parse("1y 12month", None, None),
Ok(Duration::positive(63_115_200, 0))
);
assert_eq!(
parse("12.3", Some(TimeUnit::MilliSecond), None),
Ok(Duration::positive(0, 12_300_000))
);
assert_eq!(
parse("100000000000000000000000000000years", None, None),
Ok(SYSTEMD_MAX_MICRO_DURATION)
);
assert_eq!(
parse(
"100000000000000000000000000000years",
None,
Some(Duration::MAX)
),
Ok(Duration::MAX)
);
assert_eq!(
parse("infinity", None, None),
Ok(SYSTEMD_MAX_MICRO_DURATION)
);