5个版本
0.1.4 | 2023年2月1日 |
---|---|
0.1.3 | 2023年1月25日 |
0.1.2 | 2023年1月3日 |
0.1.1 | 2020年10月22日 |
0.1.0 | 2019年1月22日 |
#5 在 #writable
1,598 每月下载量
在 6 个crate中使用了(通过 coap-handler-implementati…)
25KB
401 行
此crate提供了[WindowedInfinity]结构体及其写入的各种特质的实现。
其主要目的是封装一个小缓冲区,以便写入时将游标推进到更大的虚拟缓冲区,仅保留小缓冲区的写入。缓冲区处理完毕后,可以设置一个新的WindowedInfinity并重复写入过程。当写入计算成本较高时,这很浪费,但当操作很少超过缓冲区时,这很方便。
WindowedInfinity的一个典型的实际应用示例是实现根据RFC7959的CoAP分块传输;一个更简单的示例在demo.rs
示例中。
功能
[WindowedInfinity]实现的特质的集合取决于配置的cargo功能
- 使用
std
功能,它实现了std::io::Write - 使用
with_serde_cbor
功能,它使用serde_cbor的解密特性来实现其Write特性。 - 类似地,还有ciborium和minicbor的功能。minicbor版本有一点特殊,它同时提供了
with_minicbor
/with_minicbor_0_19
功能。 - 从
with_minicbor_0_19
开始,功能携带版本号。这允许不同版本的minicbor在同一个crate中同时存在,并且更重要的是,确保了在Cargo.toml文件中描述的依赖关系精确。 - 使用
with_embedded_io_0_4
功能,实现了嵌入式io的Write特性。
crate大小
与“做一件事,做对一件事”的原计划相比,这个crate有所扩展,因为它包含了几种序列化程序的特性和将自有写入器与其他程序(来自加密摘要或CRC)结合的额外机制。这两者都是临时的——一旦嵌入式-io的1.0版本发布,Tee将被拆分成一个专门的crate(只保留兼容性重导出和构造函数/析构函数),一旦序列化程序开始使用稳定的嵌入式-io,就不再需要添加更多的写入器实现。
依赖关系
~395–750KB
~17K SLoC