3个版本
0.12.2 | 2022年8月31日 |
---|---|
0.12.1 | 2022年8月11日 |
0.12.0 | 2020年12月3日 |
1191 在 编码 中排名
每月下载量 6,860
在 125 个crate中使用(8个直接使用)
24KB
603 行
cs_serde_bytes
免责声明
此crate是 serde_bytes 的分支。与上游的唯一区别是有意不支持字符串作为字节,使其更加严格。
[dependencies]
cs_serde_bytes = "0.12.1"
说明
没有特化,Rust强制Serde将 &[u8]
看作任何其他切片,将 Vec<u8>
看作任何其他向量。实际上,这个特定的切片和向量在许多格式中可以以更高效、紧凑的表示进行序列化和反序列化。
当与这种格式一起工作时,可以通过将 serde_bytes::Bytes
包装 &[u8]
来选择使用专门的 serde_bytes::ByteBuf
包装 Vec<u8>
。
此外,这个包支持Serde的with
属性,可以有效地处理结构体中的&[u8]
和Vec<u8>
,无需使用包装类型。
示例
use serde::{Deserialize, Serialize};
#[derive(Deserialize, Serialize)]
struct Efficient<'a> {
#[serde(with = "serde_bytes")]
bytes: &'a [u8],
#[serde(with = "serde_bytes")]
byte_buf: Vec<u8>,
}
许可证
在您选择的情况下,许可协议为Apache License, Version 2.0或MIT许可证。除非您明确声明,否则根据Apache-2.0许可证定义的,您有意提交以包含在本包中的任何贡献,将根据上述方式双重许可,无需任何额外条款或条件。
依赖项
~110–345KB