#byte-size #size #byte #human #serde #units

no-std huby

一个简单的crate(支持serde),用于处理人类可读的字节大小。

6个版本

0.1.5 2024年7月12日
0.1.4 2024年7月11日

#1554 in 编码

每月40次下载
firo中使用

GPL-3.0许可

19KB
356

GitHub Actions Workflow Status Crates.io Version docs.rs

人类字节

huby是一个易于处理字节大小的库。

crate功能

默认

  • std:根据Rust标准库启用功能

可选

  • serde:通过serde启用序列化和反序列化。

示例

基础

use huby::ByteSize;

assert_eq!("42.42 KB".parse::<ByteSize>().unwrap(), ByteSize::from_kb_f64(42.42));

与serde一起使用

use huby::ByteSize;
use serde::{Serialize, Deserialize};

#[derive(Serialize, Deserialize)]
pub struct Logger {
    path: String,
    max_size: ByteSize,
}

let logger = Logger {
    path: "some_path".into(),
    max_size: ByteSize::from_gb(1),
};

// Serialize
let j = serde_json::to_string(&logger).unwrap();
assert_eq!(r#"{"path":"some_path","max_size":"1GB"}"#, j);

// Deserialize
let l: Logger = serde_json::from_str(&j).unwrap();
assert_eq!(l.max_size, ByteSize::from_mb(1024));

依赖项

~170KB