Crates.io | bufsize |
lib.rs | bufsize |
version | 1.0.7 |
source | src |
created_at | 2019-10-09 05:16:03.853306 |
updated_at | 2023-12-20 23:51:49.379511 |
description | bytes::BufMut implementation to count buffer size |
homepage | |
repository | https://github.com/dtolnay/bufsize |
max_upload_size | |
id | 171134 |
size | 22,362 |
This library provides an implementation of bytes::BufMut
to count the size
of a resulting buffer.
[dependencies]
bufsize = "1.0"
Compiler support: requires 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());
}