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

Download history 547/week @ 2024-03-14 456/week @ 2024-03-21 468/week @ 2024-03-28 448/week @ 2024-04-04 390/week @ 2024-04-11 480/week @ 2024-04-18 620/week @ 2024-04-25 505/week @ 2024-05-02 293/week @ 2024-05-09 331/week @ 2024-05-16 423/week @ 2024-05-23 540/week @ 2024-05-30 434/week @ 2024-06-06 362/week @ 2024-06-13 689/week @ 2024-06-20 485/week @ 2024-06-27

每月下载量2,131
用于48个Crates (直接使用2个)

MIT/Apache

10KB
177

bufsize::SizeCounter

github crates.io docs.rs build status

此库提供了一个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.0MIT许可证授权。
除非您明确声明,否则根据Apache-2.0许可证定义的,您有意提交的任何贡献,均应双重许可,如上所述,不附加任何额外条款或条件。

依赖项

~170KB