3个版本
| 0.1.2 | 2024年3月23日 | 
|---|---|
| 0.1.1 | 2024年2月25日 | 
| 0.1.0 | 2024年2月25日 | 
#933 in 解析器实现
28KB
737 行
类型化字节数
该库提供了两种类型来表示字节数
- ByteSizeSi 用于 十进制 前缀单位(国际单位制)
- ByteSizeIec 用于 二进制 前缀单位(IEC 80000-13)
函数
- 字节数类型可以解析彼此的单位(例如,ByteSizeIec可以解析SI值如114514GB);
- 字节数值将仅按单位具有的自己的前缀进行格式化;
- 字节数类型可以相互转换;
- 支持 加法、减法、标量乘法 算术运算;
- 可选 serde 支持。
示例
use typed_bytesize::{ByteSizeIec, ByteSizeSi};
// SI
assert_eq!(ByteSizeSi::b(114u64), "114".parse().unwrap());
assert_eq!(ByteSizeSi::mb(114), "114MB".parse().unwrap());
print!("{}", ByteSizeSi::kb(310)); // 310.0kB
// IEC
assert_eq!(ByteSizeIec::b(514u64), "514".parse().unwrap());
assert_eq!(ByteSizeIec::mib(514), "514MiB".parse().unwrap());
print!("{}", ByteSizeIec::gib(93696)); // 91.5GiB
有关更详细的示例,请参阅 测试。
BNF
解析遵循规则
expr    ::= num | term
term    ::= decimal " "* unit
decimal ::= num | float
float   ::= num "." num
num     ::= [0-9]+
特性
- serde:在- ByteSizeSi和- ByteSizeIec上启用 serde。
- u128:使用- u128而不是- u64作为内部数值类型以支持更大的单位。 (待办事项)
依赖关系
~175KB