#duration #convert-string #format-duration

duration-string

String to duration and vice-versa lib. Format is [0-9]+(ns|us|ms|[smhdwy]) such as 100ms, 1s, 2h, 1y

11 releases

0.4.0 May 22, 2024
0.3.0 Mar 22, 2023
0.2.0 Jan 5, 2023
0.1.1 Jun 7, 2022
0.0.6 Mar 28, 2020

#23 in Date and time

Download history 13637/week @ 2024-07-22 13174/week @ 2024-07-29 14835/week @ 2024-08-05 15132/week @ 2024-08-12 16805/week @ 2024-08-19 17056/week @ 2024-08-26 15059/week @ 2024-09-02 15170/week @ 2024-09-09 14440/week @ 2024-09-16 16885/week @ 2024-09-23 16471/week @ 2024-09-30 18661/week @ 2024-10-07 18104/week @ 2024-10-14 19470/week @ 2024-10-21 18088/week @ 2024-10-28 19323/week @ 2024-11-04

75,399 downloads per month
Used in 28 crates (16 directly)

Custom license

22KB
429 lines

duration-string

duration-string is a library to convert from String to Duration and vice-versa.

build Crates.io

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])

Example

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"));

Serde support

You can enable serialization/deserialization support by adding the feature serde

  • Add serde feature

    duration-string = { version = "0.4.0", features = ["serde"] }
    
  • Add derive to struct

    use duration_string::DurationString;
    use serde::{Deserialize, Serialize};
    
    #[derive(Serialize, Deserialize)]
    struct Foo {
      duration: DurationString
    }
    

License

This project is licensed under the MIT License.

See LICENSE file for details.

Dependencies

~165KB