6 releases

Uses old Rust 2015

0.1.5 Nov 9, 2018
0.1.4 Sep 21, 2018

#3 in #human-friendly

Download history 9148/week @ 2023-07-26 13030/week @ 2023-08-02 11091/week @ 2023-08-09 12076/week @ 2023-08-16 10128/week @ 2023-08-23 10180/week @ 2023-08-30 9790/week @ 2023-09-06 9084/week @ 2023-09-13 9659/week @ 2023-09-20 8580/week @ 2023-09-27 7280/week @ 2023-10-04 8607/week @ 2023-10-11 6679/week @ 2023-10-18 5458/week @ 2023-10-25 6127/week @ 2023-11-01 4942/week @ 2023-11-08

24,752 downloads per month
Used in 15 crates (12 directly)

Custom license

47KB
1K SLoC

humanize-rs

Crates.io Docs

This lib aims at converting human-readable strings to specific types.

It's mainly used in parsing config files.

Usage

  1. Add this lib as a dependency
[dependencies]
humanize-rs = "0.1"
  1. Add the crate reference
extern crate humanize_rs;

Example

Bytes

use humanize_rs::bytes::{Bytes, Unit};

let gigabytes1 = Bytes::new(1, Unit::GiByte);
let gigabytes2 = "1 GiB".parse::<Bytes>();
assert_eq!(gigabytes1, gigabytes2);
assert_eq!(gigabytes2.unwrap().size(), 1 << 30);

Duration

use humanize_rs::duration::parse;
use std::time::Duration;

assert_eq!(parse("1h 30m 71s"), Ok(Duration::from_secs(60 * 90 + 71)));

RFC3339 Datetime

use humanize_rs::time::{Time, TimeZone};

assert_eq!(
    "2018-09-21T16:56:44.234867232+08:00".parse::<Time>(),
    Ok(Time::from_timetuple(
        2018,
        9,
        21,
        16,
        56,
        44,
        234867232,
        TimeZone::new(8).unwrap(),
    ).unwrap())
);

Contributing

Any PRs or issues are welcomed.

No runtime deps