Crates.io | humanize-bytes |
lib.rs | humanize-bytes |
version | 1.0.6 |
source | src |
created_at | 2023-03-22 20:03:28.744481 |
updated_at | 2024-04-08 22:32:49.368157 |
description | Format byte sizes in human readable form |
homepage | https://github.com/trueb2/humanize-bytes |
repository | https://github.com/trueb2/humanize-bytes |
max_upload_size | |
id | 817436 |
size | 29,135 |
Create a human-readable string representation of a number of bytes either in binary or decimal units (SI or IEC).
https://en.wikipedia.org/wiki/Binary_prefix
1 KB = 1000 B 1 KiB = 1024 B
use humanize_bytes::{humanize_bytes_decimal, humanize_bytes_binary, humanize_quantity};
assert_eq!(humanize_bytes_binary!(0), "0 B");
assert_eq!(humanize_bytes_binary!(512), "512 B");
assert_eq!(humanize_bytes_binary!(1023), "1023 B");
assert_eq!(humanize_bytes_binary!(1024), "1 KiB");
assert_eq!(humanize_bytes_binary!(1024 + 99), "1 KiB");
assert_eq!(humanize_bytes_binary!(1024 + 103), "1.1 KiB");
assert_eq!(humanize_bytes_binary!(1024 * 1024 - 1), "1023.9 KiB");
assert_eq!(humanize_bytes_binary!(1024 * 1024), "1 MiB");
assert_eq!(humanize_bytes_binary!(1024 * 1024 * 1024), "1 GiB");
assert_eq!(humanize_bytes_decimal!(0), "0 B");
assert_eq!(humanize_bytes_decimal!(512), "512 B");
assert_eq!(humanize_bytes_decimal!(999), "999 B");
assert_eq!(humanize_bytes_decimal!(1000), "1 kB");
assert_eq!(humanize_bytes_decimal!(1000 + 99), "1 kB");
assert_eq!(humanize_bytes_decimal!(1000 + 100), "1.1 kB");
assert_eq!(humanize_bytes_decimal!(1000 * 1000 - 1), "999.9 kB");
assert_eq!(humanize_bytes_decimal!(1000 * 1000), "1 MB");
assert_eq!(humanize_bytes_decimal!(1000 * 1000 * 1000), "1 GB");
assert_eq!(humanize_quantity!(0), "0");
assert_eq!(humanize_quantity!(512), "512");
assert_eq!(humanize_quantity!(999), "999");
assert_eq!(humanize_quantity!(1000), "1 k");
assert_eq!(humanize_quantity!(1000 + 99), "1 k");
assert_eq!(humanize_quantity!(1000 + 100), "1.1 k");
assert_eq!(humanize_quantity!(1000 * 1000 - 1), "999.9 k");
assert_eq!(humanize_quantity!(1000 * 1000), "1 M");
This crate has one dependency, smartstring
, and does not allocate because all formatting fits within the MAX_INLINE
limit for a SmartString<LazyCompact>
. Both macros return a SmartString<LazyCompact>
, which looks/feels just like a normal String
.