#duration #convert-string #format-duration #lib

duration-string

字符串到持续时间以及相反的库。格式为 [0-9]+(ns|us|ms|[smhdwy]),例如 100ms,1s,2h,1y

11 个版本

0.4.0 2024年5月22日
0.3.0 2023年3月22日
0.2.0 2023年1月5日
0.1.1 2022年6月7日
0.0.6 2020年3月28日

#28 in 日期和时间

Download history 10740/week @ 2024-05-04 11941/week @ 2024-05-11 11768/week @ 2024-05-18 12194/week @ 2024-05-25 12975/week @ 2024-06-01 13135/week @ 2024-06-08 12775/week @ 2024-06-15 11915/week @ 2024-06-22 11126/week @ 2024-06-29 12280/week @ 2024-07-06 12131/week @ 2024-07-13 13818/week @ 2024-07-20 12677/week @ 2024-07-27 15073/week @ 2024-08-03 14984/week @ 2024-08-10 13376/week @ 2024-08-17

58,448 每月下载量
27 个 crate 中使用 (15 个直接使用)

自定义许可

22KB
429

duration-string

duration-string 是一个库,用于将 String 转换为 Duration 以及相反。

build Crates.io

接受如 100ms2s5m 30s1h10m 这样的字符串,并将其转换为 Duration

接受一个 Duration 并将其转换为 String

字符串格式为 String 的乘积,形式为 [0-9]+(ns|us|ms|[smhdwy])

示例

StringDuration

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

DurationString

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 支持

您可以通过添加功能 serde 来启用 序列化/反序列化 支持

  • 添加 serde 功能

    duration-string = { version = "0.4.0", features = ["serde"] }
    
  • 为结构体添加 derive

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

许可

本项目采用 MIT 许可证。

有关详细信息,请参阅 LICENSE 文件。

依赖项

~165KB