duration-string is a library to convert from String to Duration and vice-versa.
Uses zero dependencies unless serde feature is enabled.
Takes a String such as 100ms, 2s, 5m 30s, 1h10m and converts it into a Duration.
Takes a Duration and converts it into String.
The String format is a multiply of [0-9]+(ns|us|ms|[smhdwy])
String to Duration:
use std::convert::TryFrom;
use duration_string::DurationString;
use std::time::Duration;
let d: Duration = DurationString::try_from(String::from("100ms")).unwrap().into();
assert_eq!(d, Duration::from_millis(100));
// Alternatively
let d: Duration = "100ms".parse::<DurationString>().unwrap().into();
assert_eq!(d, Duration::from_millis(100));Duration to String:
use std::convert::TryFrom;
use duration_string::*;
use std::time::Duration;
let d: String = DurationString::from(Duration::from_millis(100)).into();
assert_eq!(d, String::from("100ms"));You can enable serialization/deserialization support by adding the feature serde
-
Add
serdefeatureduration-string = { version = "0.5.3", features = ["serde"] }
-
Add derive to struct
use duration_string::DurationString; use serde::{Deserialize, Serialize}; #[derive(Serialize, Deserialize)] struct Foo { duration: DurationString }
This project is licensed under the MIT License.
See LICENSE file for details.