8 stable releases

Uses old Rust 2015

2.1.1 Mar 25, 2021
2.1.0 Feb 21, 2020
2.0.1 Sep 23, 2019
1.0.3 Sep 9, 2019
0.1.0 Aug 14, 2017

⚠️ Issues reported

#1533 in Parser implementations

Download history 9498/week @ 2024-07-20 9058/week @ 2024-07-27 8794/week @ 2024-08-03 7686/week @ 2024-08-10 8676/week @ 2024-08-17 8070/week @ 2024-08-24 7867/week @ 2024-08-31 8622/week @ 2024-09-07 6381/week @ 2024-09-14 7604/week @ 2024-09-21 5962/week @ 2024-09-28 5966/week @ 2024-10-05 6641/week @ 2024-10-12 6561/week @ 2024-10-19 5885/week @ 2024-10-26 7052/week @ 2024-11-02

27,345 downloads per month
Used in 62 crates (37 directly)

MIT license

37KB
450 lines

parse_duration

Crates.io Travis

IMPORTANT: This repository is no longer being updated. Before deciding to use it, check if any of the issues are deal breakers. In particular, this crate should not be used with untrusted input (see this issue).

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_duration::parse;
use std::time::Duration;

// One hour less than a day
assert_eq!(parse("1 day -1 hour"), Ok(Duration::new(82_800, 0)));
// Using exponents
assert_eq!(parse("1.26e-1 days"), Ok(Duration::new(10_886, 400_000_000)));
// Extra things will be ignored
assert_eq!(
    parse("Duration: 1 hour, 15 minutes and 29 seconds"),
    Ok(Duration::new(4529, 0))
);

Documentation

Documentation may be found on docs.rs.

Minimum Rust version policy

This crate's minimum supported rustc version is 1.28.0.

If the minimum rustc version needs to be increased, there will be a new major version. For example, if parse_duration 2.0.0 requires rustc 1.28.0, then parse_duration 2.x.y will also only require rustc 1.28.0. Since this crate is fairly simple, there likely won't be any need to increase the minimum version in the foreseeable future.

License

This software is licensed under the MIT License.

Contributing

Feel free to file an issue or submit a pull request if there's a bug you want fixed or a feature you want implemented.

By contributing to this project, you agree to license your code under the terms of the MIT License.

Dependencies

~2.5–3.5MB
~64K SLoC