durstr 0.3.0

A simple library for parsing human-readable strings into durations.
Documentation

durstr

A simple library for parsing human-readable duration strings into std::time::Duration.

Usage

Add durstr to Cargo.toml:

[dependencies]
durstr = "0.3.0"

This library provides a parse function for quick and easy parsing, and a Parser struct for more control over parsing behavior.

The parse function is a convenience wrapper around a default Parser.

use durstr::parse;
use std::time::Duration;

let dur = parse("12 minutes, 21 seconds");
assert_eq!(dur, Ok(Duration::from_secs(741)));

let dur = parse("1hr 2min 3sec");
assert_eq!(dur, Ok(Duration::from_secs(3723)));

For more control, you can use the Parser struct directly. For example, to parse with case-insensitivity:

use durstr::{Parser, ParserOptions};
use std::time::Duration;

let parser = Parser::new(ParserOptions { ignore_case: true });
let dur = parser.parse("1 MINUTE, 2 SECONDS");
assert_eq!(dur, Ok(Duration::from_secs(62)));

Supported Units

Unit Aliases
Millisecond ms, msec/msecs, milliseconds
Second s, sec/secs, seconds
Minute m, min/mins, minutes
Hour h, hr/hrs, hours

Future Enhancements

  • Floating point support
  • User-defined custom units