Skip to content

Byte size human formatting Rust library

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

trueb2/humanize-bytes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CI Crate

Humanize Bytes

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};
 
println!("{}", humanize_bytes_binary!(0)); // 0 B
println!("{}", humanize_bytes_binary!(512)); // 512 B
println!("{}", humanize_bytes_binary!(1023)); // 1023 B
println!("{}", humanize_bytes_binary!(1024)); // 1 KiB
println!("{}", humanize_bytes_binary!(1024 + 99)); // 1 KiB
println!("{}", humanize_bytes_binary!(1024 + 103)); // 1.1 KiB
println!("{}", humanize_bytes_binary!(1024 * 1024 - 1)); // 1023.9 kB
println!("{}", humanize_bytes_binary!(1024 * 1024)); // 1 MB
 
println!("{}", humanize_bytes_decimal!(0)); // 0 B
println!("{}", humanize_bytes_decimal!(512)); // 512 B
println!("{}", humanize_bytes_decimal!(999)); // 999 B
println!("{}", humanize_bytes_decimal!(1000)); // 1 kB
println!("{}", humanize_bytes_decimal!(1000 + 99)); // 1 kB
println!("{}", humanize_bytes_decimal!(1000 + 100)); // 1.1 kB
println!("{}", humanize_bytes_decimal!(1000 * 1000 - 1)); // 999.9 kB
println!("{}", humanize_bytes_decimal!(1000 * 1000)); // 1 MB

println!("{}", humanize_quantity!(0)); // 0
println!("{}", humanize_quantity!(512)); // 512
println!("{}", humanize_quantity!(999)); // 999
println!("{}", humanize_quantity!(1000)); // 1 k
println!("{}", humanize_quantity!(1000 + 99)); // 1 k
println!("{}", humanize_quantity!(1000 + 100)); // 1.1 k
println!("{}", humanize_quantity!(1000 * 1000 - 1)); // 999.9 k
println!("{}", humanize_quantity!(1000 * 1000)); // 1 M

Implementation Details

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.

About

Byte size human formatting Rust library

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Releases

No releases published

Languages