12个版本 (稳定版)
1.0.7 | 2023年12月20日 |
---|---|
1.0.6 | 2023年7月15日 |
1.0.5 | 2023年3月3日 |
1.0.4 | 2022年12月17日 |
0.4.0 | 2019年10月9日 |
在内存管理中排名第37
每月下载量2,131次
用于48个Crates (直接使用2个)
10KB
177 行
bufsize::SizeCounter
此库提供了一个bytes::BufMut
的实现,用于计算生成的缓冲区大小。
[dependencies]
bufsize = "1.0"
编译器支持:需要rustc 1.39+
示例
use bufsize::SizeCounter;
use bytes::BufMut;
pub struct DataStructure;
impl DataStructure {
pub fn serialize<B: BufMut>(&self, buf: &mut B) {
let name = "DataStructure";
buf.put_u8(name.len() as u8);
buf.put_slice(name.as_bytes());
buf.put_u32_le(9999);
buf.put_f32_le(1.0);
}
}
fn main() {
let mut sizecount = SizeCounter::new();
DataStructure.serialize(&mut sizecount);
let mut buffer = Vec::with_capacity(sizecount.size());
DataStructure.serialize(&mut buffer);
assert_eq!(sizecount.size(), buffer.len());
}
许可证
在您的选择下,根据Apache许可证版本2.0或MIT许可证授权。除非您明确声明,否则根据Apache-2.0许可证定义的,您有意提交的任何贡献,均应双重许可,如上所述,不附加任何额外条款或条件。
依赖项
~170KB