7个版本
0.1.6 | 2024年5月28日 |
---|---|
0.1.5 | 2023年9月22日 |
0.1.4 | 2023年4月13日 |
0.1.3 | 2022年10月28日 |
0.1.0 | 2022年1月31日 |
244在编码分类中
每月下载量:1,741
在7个crate中使用(通过icu_list)
14KB
222 行
deduplicating_array
使用PartialEq
来减少序列化大小的serde序列化策略。
该创建可以与Serde derive一起使用,如下所示
#[derive(serde::Deserialize, serde::Serialize)]
pub struct Foo {
#[serde(with = "deduplicating_array")]
data: [Bar; 12],
// ...
}
Bar
与在数组中首次出现的Bar
相等时将不会被序列化(而是序列化首次出现的索引)。反序列化会克隆第一个Bar
到它出现的所有索引位置(因此Bar
必须实现Clone
)。
人类可读的序列化将跳过的值表示为包含目标索引的单例数组,例如,Rust数组["Foo", "Bar", "Foo"]
将序列化为JSON ["Foo", "Bar", [0]]
。
这意味着不能将单例整数数组用作数组元素(它们在Bincode中是有效的,但使用它们实际上没有太大意义)。
更多信息
有关开发、作者身份、贡献等信息,请访问 ICU4X 主页
。
依赖项
~0.4–1MB
~22K SLoC