huby

Crates.iohuby
lib.rshuby
version0.1.4
sourcesrc
created_at2024-07-10 13:17:57.377268
updated_at2024-07-12 09:00:57.824016
descriptionA simple crate (supporting serde) to handle byte sizes as human
homepage
repositoryhttps://github.com/qjerome/human-bytes
max_upload_size
id1298236
size53,784
qjerome (qjerome)

documentation

https://docs.rs/huby

README

GitHub Actions Workflow Status Crates.io Version docs.rs

Human Bytes

huby is a library for easily handling byte sizes.

Crate features

Default

  • std: Enable feature depending on the Rust standard library

Optional

  • serde: Enable serialization/deserialization via serde.

Examples

Basics

use huby::ByteSize;

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

Use with 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));
Commit count: 21

cargo fmt