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 算法

Download history • Rust 包仓库 308/week @ 2024-04-07 • Rust 包仓库 770/week @ 2024-04-14 • Rust 包仓库 686/week @ 2024-04-21 • Rust 包仓库 550/week @ 2024-04-28 • Rust 包仓库 381/week @ 2024-05-05 • Rust 包仓库 616/week @ 2024-05-12 • Rust 包仓库 754/week @ 2024-05-19 • Rust 包仓库 350/week @ 2024-05-26 • Rust 包仓库 673/week @ 2024-06-02 • Rust 包仓库 522/week @ 2024-06-09 • Rust 包仓库 417/week @ 2024-06-16 • Rust 包仓库 476/week @ 2024-06-23 • Rust 包仓库 572/week @ 2024-06-30 • Rust 包仓库 155/week @ 2024-07-07 • Rust 包仓库 1340/week @ 2024-07-14 • Rust 包仓库 518/week @ 2024-07-21 • Rust 包仓库

2,604 每月下载量
3 个crate(2个直接)中使用

MIT 许可证

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