4个版本
0.10.4 | 2023年10月2日 |
---|---|
0.10.3 | 2022年9月4日 |
0.10.2 | 2022年5月17日 |
0.10.1 | 2020年11月2日 |
0.9.1 |
|
#13 in 值格式化
148,873 每月下载量
用于 391 个crates (14 直接)
40KB
648 行
ubyte
一个简单、完整、const
-一切,饱和,人性化的 #![no_std]
Rust 字节单位库。
use ubyte::{ByteUnit, ToByteUnit};
// Constructors and associated units for all SI units up to exbibyte.
let half_mb = 500.kilobytes();
let half_mb = ByteUnit::Kilobyte(500);
let half_mb = 500 * ByteUnit::kB;
// All arithmetic and conversions are saturating.
let exbibyte_too_large_a = 1024 * ByteUnit::EiB;
let exbibyte_too_large_b = ByteUnit::Exbibyte(1024);
let exbibyte_too_large_c = 1024.exbibytes();
assert_eq!(exbibyte_too_large_a, ByteUnit::max_value());
assert_eq!(exbibyte_too_large_b, ByteUnit::max_value());
assert_eq!(exbibyte_too_large_c, ByteUnit::max_value());
// Printing is human-friendly and customizeable.
assert_eq!(323.kilobytes().to_string(), "323kB");
assert_eq!(3.mebibytes().to_string(), "3MiB");
assert_eq!((7.gigabytes() + 58.mebibytes() + 3.kilobytes()).to_string(), "7.06GB");
assert_eq!(format!("{:.0}", 7.gibibytes() + 920.mebibytes()), "8GiB");
assert_eq!(format!("{:.3}", 7.gibibytes() + 920.mebibytes()), "7.898GiB");
assert_eq!(format!("{:04.2}", 999.kilobytes() + 990.bytes()), "0976.55KiB");
assert_eq!(format!("{:02.0}", 999.kilobytes() + 990.bytes()), "01MB");
// Parsing is intuitive.
assert_eq!("10 KiB".parse().unwrap(), 10.kibibytes());
assert_eq!("10kb".parse().unwrap(), 10.kilobytes());
assert_eq!("512Kb".parse().unwrap(), 512.kilobytes());
assert_eq!("0.2MB".parse().unwrap(), 200.kilobytes());
assert_eq!("1.5 MiB".parse().unwrap(), 1.mebibytes() + 512.kibibytes());
assert_eq!("7.25 gb".parse().unwrap(), 7.gigabytes() + 250.megabytes());
请参阅文档以获取详细的用法信息。
用法
将以下内容添加到您的 Cargo.toml
[dependencies]
ubyte = "0.10"
为了支持 serde
(反)序列化,启用默认禁用的 serde
功能
[dependencies]
ubyte = { version = "0.10", features = ["serde"] }
许可证
ubyte
根据以下之一进行许可,由您选择
- Apache License,版本 2.0,(LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT License (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
除非您明确声明,否则您提交给 ubyte
的任何贡献都应如上所述双许可,而无需任何附加条款或条件。
依赖关系
~175KB