durstr 0.3.0

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

[<img alt="Crates.io Version" src="https://img.shields.io/crates/v/durstr?style=flat-square">](https://crates.io/crates/durstr)
[<img alt="docs.rs" src="https://img.shields.io/docsrs/durstr?style=flat-square">](https://docs.rs/durstr)

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

## Usage

Add `durstr` to `Cargo.toml`:

```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`.

```rust
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:

```rust
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