6个版本

使用旧的Rust 2015

0.3.1 2022年8月9日
0.3.0 2022年4月29日
0.2.1 2021年4月19日
0.1.1 2019年11月15日
0.1.0 2018年4月23日

#9无标准库

Download history 242105/week @ 2024-03-14 234359/week @ 2024-03-21 227668/week @ 2024-03-28 290206/week @ 2024-04-04 253855/week @ 2024-04-11 248960/week @ 2024-04-18 250514/week @ 2024-04-25 267812/week @ 2024-05-02 263870/week @ 2024-05-09 274998/week @ 2024-05-16 264639/week @ 2024-05-23 306721/week @ 2024-05-30 269585/week @ 2024-06-06 296533/week @ 2024-06-13 278916/week @ 2024-06-20 239636/week @ 2024-06-27

1,141,554 每月下载量
用于 1,833 个包 (36 个直接使用)

MIT/Apache

13KB
248

hash32

32位哈希库

文档

许可

根据以下任一许可协议授权

任选其一。

贡献

除非您明确表示,否则任何有意提交以包含在作品中并由您定义的Apache-2.0许可中的贡献,应按上述双重许可,不得附加任何额外条款或条件。


lib.rs:

32位哈希算法

为什么?

因为32位架构是一回事(例如ARM Cortex-M)并且您不希望您的哈希函数引入大量慢速的64位编译器内建函数(64位操作的软件实现)。

core::hash 的关系

此包通过扩展 core::hash 以32位版本的 Hasher,该版本扩展了 core::hash::Hasher。它要求哈希器在计算哈希值时仅执行32位操作,并添加 finish32 以获取哈希器的结果作为 u32。标准 finish 方法应仅将此结果零扩展。

由于它扩展了 core::hash::HasherHasher 可以与实现标准 Hash 特质的任何类型一起使用。

此包还添加了一个具有const构造函数的 BuildHasherDefault 版本,以解决 core 版本缺少的问题。

哈希器

此包提供了以下32位哈希算法的实现

通用代码

在通用代码中,特质界限HcorehashHasher接受两者64位哈希器,如stdcollectionshash_mapDefaultHasher;以及32位哈希器,如本仓库中定义的(hash32FnvHasherhash32Murmur3Hasher

特质界限Hhash32Hasher更加严格,因为它只接受32位哈希器。

BuildHasherDefault<H>类型实现了corehashBuildHasher特质,因此它可以构建32位和64位哈希器。要将类型限制为只生成32位哈希器,您可以添加特质界限HHasherhash32Hasher

MSRV

本仓库保证在最新稳定版Rust上编译。它可能在旧版本上也能编译,但任何新的补丁版本都可能改变。

依赖关系

~120KB