#duration-string #parse-duration #duration #string #parse #date #parser

parse_duration0

Parses a duration from a string. Fork with security fix.

1 stable release

3.0.0 Jul 5, 2022

#534 in Date and time


Used in 2 crates

MIT license

30KB
415 lines

parse_duration0

Crates.io Documentation Test & lint Check dependencies License: MIT

This is a fork of zeta12ti's parse_duration.

Main differences:

  • It fixes a DOS issue.
  • It drops support for numbers bigger than ±9.22e18.
  • It drops support for exponential notation.

This crate provides a function parse for parsing strings into durations. The parser is based on the standard set by systemd.time, but extends it significantly. For example, negative numbers, decimals and exponents are allowed.

extern crate parse_duration;

use ::parse_duration0::parse;
use ::std::time::Duration;

// One hour less than a day
assert_eq!(parse("1 day -1 hour"), Ok(Duration::new(82_800, 0)));
// Extra things will be ignored
assert_eq!(
    parse("Duration: 1 hour, 15 minutes and 29 seconds"),
    Ok(Duration::new(4529, 0))
);

Dependencies

~2.8–4MB
~67K SLoC