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编码分类中

Download history 772/week @ 2024-04-25 730/week @ 2024-05-02 631/week @ 2024-05-09 578/week @ 2024-05-16 764/week @ 2024-05-23 462/week @ 2024-05-30 332/week @ 2024-06-06 387/week @ 2024-06-13 371/week @ 2024-06-20 314/week @ 2024-06-27 576/week @ 2024-07-04 392/week @ 2024-07-11 349/week @ 2024-07-18 398/week @ 2024-07-25 472/week @ 2024-08-01 467/week @ 2024-08-08

每月下载量:1,741
7个crate中使用(通过icu_list

Unicode-3.0

14KB
222

deduplicating_array crates.io

使用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