3个版本

0.1.2 2023年2月27日
0.1.1 2023年2月24日
0.1.0 2023年2月24日

#741 in 编码

Download history 914/week @ 2024-03-16 1062/week @ 2024-03-23 1255/week @ 2024-03-30 820/week @ 2024-04-06 751/week @ 2024-04-13 1175/week @ 2024-04-20 1066/week @ 2024-04-27 1210/week @ 2024-05-04 1014/week @ 2024-05-11 912/week @ 2024-05-18 806/week @ 2024-05-25 1470/week @ 2024-06-01 1238/week @ 2024-06-08 1446/week @ 2024-06-15 1233/week @ 2024-06-22 462/week @ 2024-06-29

每月下载量4,620
9 个crate中(5个直接)使用

MIT/Apache

18KB
412

serde_byte_array

包装类型,以实现对 [u8; N] 的优化处理

说明

在没有特化的情况下,Rust强制Serde将 [u8; N] 当作任何其他数组处理。实际上,这个特定数组在很多格式中通常可以以更高效、更紧凑的表示形式进行序列化和反序列化。

当与这种格式一起工作时,您可以通过将 [u8; N] 包装在 serde_byte_array::ByteArray<N> 中来选择专门处理 [u8; N]

此外,此crate还支持Serde的 with 属性,以实现不需要包装类型就能高效处理struct中的 [u8; N]&[u8; N]

示例

use serde::{Deserialize, Serialize};

#[derive(Deserialize, Serialize)]
struct Efficient<'a> {
    #[serde(with = "serde_byte_array")]
    bytes: [u8; 3],

    #[serde(with = "serde_byte_array", borrow)]
    bytes_ref: &'a [u8; 3],
}

许可证

根据您的选择,在 Apache License, Version 2.0MIT许可证 下授权。
除非您明确声明,否则根据Apache-2.0许可证的定义,您有意提交给此crate的贡献将被双授权,如上所述,无需任何额外的条款或条件。

依赖关系

~110–345KB