From e499cb99bede315d318a61599877d1edbda0ed68 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sun, 23 Apr 2023 18:34:54 +0200 Subject: [PATCH] add the readme --- README.md | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 52 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 0353823..b489967 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,53 @@ # humantime_to_duration -Parses a relative time string and returns a `Duration` + +A Rust crate for parsing human-readable relative time strings and converting them to a `Duration`. + +## Features + +- Parses a variety of human-readable time formats. +- Supports positive and negative durations. +- Allows for chaining time units (e.g., "1 hour 2 minutes" or "2 days and 2 hours"). + +## Usage + +Add this to your `Cargo.toml`: + +```toml +[dependencies] +humantime_to_duration = "0.1.0" +``` + +Then, import the crate and use the from_str function: +``` +use humantime_to_duration::from_str; +use time::Duration; + +let duration = from_str("+3 days"); +assert_eq!(duration, Some(Duration::days(3))); +``` + +### Supported Formats + +The `from_str` function supports the following formats for relative time: + +- `num` `unit` (e.g., "-1 hour", "+3 days") +- `unit` (e.g., "hour", "day") +- "now" or "today" +- "yesterday" +- "tomorrow" +- use "ago" for the past +- combined units with "and" or "," (e.g., "2 years and 1 month", "1 day, 2 hours" or "2 weeks 1 second") + +`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` function returns: + +- `Some(Duration)` - If the input string can be parsed as a relative time. +- `None` - If the input string cannot be parsed as a relative time. + +## License + +This project is licensed under the [MIT License](LICENSE).