7个版本
0.4.3 | 2022年11月4日 |
---|---|
0.4.2 | 2022年6月22日 |
0.4.1 | 2022年3月29日 |
0.3.3 | 2022年6月22日 |
0.3.1 | 2022年2月4日 |
#1076 in 算法
2,604 每月下载量
在 3 个crate(2个直接)中使用
45KB
914 行
本crate提供了一个具有向后兼容功能的稳定、结构化哈希。这意味着什么?
- 稳定:即使在编译器、进程、架构或std lib发生变化的情况下,该库的较小版本中的哈希值也不会改变。
- 结构化:对结构进行哈希处理,而不是对流进行哈希处理
- 向后兼容:在不改变哈希值的情况下,可以对结构体的模式进行有限的变化。一个变化是可以添加新字段。这是通过在哈希时跳过默认值来实现的。例如,None、0、false和vec![]的值不参与哈希。因此,Old { a: 1 }和New { a: 1, b: None }具有相同的哈希值。向后兼容的另一个特性是整数的大小可以增加而不改变值。例如,Old { a: 1u16 }和New { a: 1u32 }具有相同的哈希值。请注意,尽管允许具有不同模式的两个结构体发生冲突,但具有相同模式的两个结构体永远不会发生冲突(冲突定义为编码的注入性。在最终输出中仍然可能找到冲突,尤其是在非加密版本)
依赖关系
~3MB
~73K SLoC