humantimetoduration

Crates.io License CodeCov

A Rust crate for parsing human-readable relative time strings and converting them to a Duration.

Features

Usage

Add this to your Cargo.toml:

toml [dependencies] humantime_to_duration = "0.3.0"

Then, import the crate and use the from_str and from_str_at_date functions: ```rs use humantimetoduration::{fromstr, fromstratdate}; use chrono::Duration;

let duration = fromstr("+3 days"); asserteq!(duration.unwrap(), Duration::days(3));

let today = Utc::today().naiveutc(); let yesterday = today - Duration::days(1); asserteq!( fromstrat_date(yesterday, "2 days").unwrap(), Duration::days(1) ); ```

Supported Formats

The from_str and from_str_at_date functions support the following formats for relative time:

num can be a positive or negative integer. unit can be one of the following: "fortnight", "week", "day", "hour", "minute", "min", "second", "sec" and their plural forms.

Return Values

The from_str and from_str_at_date functions return:

This function will return Err(ParseDurationError::InvalidInput) if the input string cannot be parsed as a relative time.

Fuzzer

To run the fuzzer: $ cargo fuzz run fuzz_from_str

License

This project is licensed under the MIT License.