5 个不稳定版本
0.3.0 | 2024年5月21日 |
---|---|
0.2.2 | 2024年5月2日 |
0.2.1 | 2024年5月2日 |
0.2.0 | 2024年5月2日 |
0.1.0 | 2024年5月2日 |
#281 在 #data-structures
每月 243 次下载
40KB
727 行
线性集合
基于线性数据结构的 Map 和 Set 类型。
Map 的许多用途是针对小集合,其中 std 中比较数据结构的惩罚(内存开销、哈希吞吐量、非线性数据结构的间接和潜在的缓存不局部性)大于它们相对降低的算法复杂度。
这种惩罚通常不大,然而,如果在一个紧密循环中分配这样的小结构(比如,从 Json Web Token 反序列化声明)可能会获得一点性能提升。
动机
存在另一个实现线性集合类型(linear_map)的包,但它只支持由向量支持的集合:我还需要数组类型。
特性标志
- "macros": 编译类型字面量的类型检查。
- "serde": 使用 serde 进行序列化和反序列化。
0.3.0 版本的更改
- 修复 merge_from_iter
- 添加宏
- 添加了许多特质推导
- 为 VecSet 添加了 serde 支持
- ArrayMap::new_unchecked 重命名为 ArrayMap::from_array_unchecked
- 添加 VecSet::from_map_unchecked
待办事项
- 可失败分配 API
- VecDeque 支持的类型(如果你需要从 into_inner() 返回 vecdeque 会很棒)
- 通过 serde-big-array 为数组类型添加 serde 支持
- 迭代器支持
- 更多的测试
稳定性策略(pre - 1.0)
- 1.0 将不会实现,直到此包依赖的所有不稳定特性要么得到稳定化,要么被移除。
- 所有更改,包括带有 "nightly" 前缀的特性的移除,只要它们是为了符合底层不稳定 API 或未指定为非破坏性的,都不被视为破坏性的。请勿在公共库中使用它们。
依赖
~195KB