#filesize #numbers #magnitude #numbers-formatting #formatting #human

no-std human_format

Rust Port of human-format from node, formatting numbers for us, while the machines are still at bay

5 stable releases

Uses old Rust 2015

1.1.0 Feb 17, 2024
1.0.3 Nov 24, 2019
1.0.2 Feb 2, 2018
1.0.1 Jan 29, 2018

#32 in Value formatting

Download history 13321/week @ 2025-01-05 17047/week @ 2025-01-12 17984/week @ 2025-01-19 16958/week @ 2025-01-26 17007/week @ 2025-02-02 18306/week @ 2025-02-09 17685/week @ 2025-02-16 20819/week @ 2025-02-23 29120/week @ 2025-03-02 27278/week @ 2025-03-09 20010/week @ 2025-03-16 20837/week @ 2025-03-23 184011/week @ 2025-03-30 241759/week @ 2025-04-06 129909/week @ 2025-04-13 69521/week @ 2025-04-20

626,313 downloads per month
Used in 42 crates (18 directly)

MIT license

14KB
197 lines

human-format-rs

Crates.io Documentation

Rust Port of human-format from node, formatting numbers for us, while the machines are still at bay.

Master Develop
Master Develop

What is human_format?

The primary purpose for this crate is to format numbers in a customizable fashion based around magnitudes. It is inspired by the human-format package and the hope is to ultimately provide an idiomatic rust port.

Usage

  1. Add this package as a dependency
[dependencies]
human_format = "1.0"
  1. Print some human readable strings

Examples

// 1.00 k
Formatter::new()
    .format(1000 as f64));

// 1.34 k
Formatter::new()
    .with_decimals(2)
    .format(1337 as f64);

// 1.3 k
Formatter::new()
    .with_decimals(1)
    .format(1337 as f64);

// 1.3B
Formatter::new()
    .with_decimals(1)
    .with_separator("")
    .format(1337000000 as f64);

// 1.00 - k
Formatter::new()
    .with_separator(" - ")
    .format(1000 as f64);


// Define your own scales as you see fit
let mut custom_binary_scales = Scales::new();

custom_binary_scales
    .with_base(1000)
    .with_suffixes(["".to_owned(),"k".to_owned(), "M".to_owned(), "G".to_owned(), "T".to_owned(), "P".to_owned(), "E".to_owned(), "Z".to_owned(), "Y".to_owned()].to_vec());

// 1.00 kB
Formatter::new()
    .with_scales(custom_binary_scales)
    .with_units("B")
    .format(1000 as f64);

// 1.00 kiB
Formatter::new()
    .with_scales(Scales::Binary())
    .with_units("B")
    .format(1000 as f64);

For more examples please consult tests/demo.rs

No runtime deps