2 个版本
0.1.1 | 2024 年 6 月 25 日 |
---|---|
0.1.0 | 2024 年 6 月 25 日 |
1474 在 网络编程 中排名
每月 247 次下载
用于 netem-trace
29KB
535 代码行
Human Bandwidth
一个提供对带宽进行人类可读格式解析和格式化的库 bandwidth。启用 serde
功能以集成 serde
。
MSRV: 1.60
示例
更详细的用法可以在 文档 中找到。
解析和格式化
use bandwidth::Bandwidth;
use human_bandwidth::Bandwidth;
fn main() {
// Parse bandwidth from human-readable string
assert_eq!(parse_bandwidth("9Tbps 420Gbps"), Ok(Bandwidth::new(9420, 0)));
assert_eq!(parse_bandwidth("32Mbps"), Ok(Bandwidth::new(0, 32_000_000)));
// Format bandwidth to human-readable string
let val1 = Bandwidth::new(9420, 0);
assert_eq!(format_bandwidth(val1).to_string(), "9Tbps 420Gbps");
let val2 = Bandwidth::new(0, 32_000_000);
assert_eq!(format_bandwidth(val2).to_string(), "32Mbps");
}
要集成 serde
use serde::{Serialize, Deserialize};
use bandwidth::Bandwidth;
#[derive(Serialize, Deserialize)]
struct Foo {
#[serde(with = "human_bandwidth::serde")]
bandwidth: Bandwidth,
}
fn main () {
let json = r#"{"bandwidth": "1kbps"}"#;
let foo = serde_json::from_str::<Foo>(json).unwrap();
assert_eq!(foo.bandwidth, Bandwidth::from_kbps(1));
let reverse = serde_json::to_string(&foo).unwrap();
assert_eq!(reverse, r#"{"bandwidth":"1kbps"}"#)
}
维护者
如何贡献
您应该遵循我们的 行为准则。
有关贡献约定,请参阅 贡献指南。
提交代码前请确保所有测试都通过。
贡献者
许可协议
Apache-2.0 © stack-rs
致谢
依赖项
~235KB