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 在 无标准库 中
1,141,554 每月下载量
用于 1,833 个包 (36 个直接使用)
13KB
248 行
hash32
32位哈希库
文档
许可
根据以下任一许可协议授权
- Apache License,版本2.0 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
贡献
除非您明确表示,否则任何有意提交以包含在作品中并由您定义的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::Hasher
,Hasher
可以与实现标准 Hash
特质的任何类型一起使用。
此包还添加了一个具有const构造函数的 BuildHasherDefault
版本,以解决 core
版本缺少的问题。
哈希器
此包提供了以下32位哈希算法的实现
通用代码
在通用代码中,特质界限H:core:hash:Hasher
接受两者64位哈希器,如std:collections:hash_map:DefaultHasher
;以及32位哈希器,如本仓库中定义的(hash32:FnvHasher
和hash32:Murmur3Hasher
)
特质界限H:hash32:Hasher
更加严格,因为它只接受32位哈希器。
BuildHasherDefault<H>
类型实现了core:hash:BuildHasher
特质,因此它可以构建32位和64位哈希器。要将类型限制为只生成32位哈希器,您可以添加特质界限H:Hasher:hash32:Hasher
MSRV
本仓库保证在最新稳定版Rust上编译。它可能在旧版本上也能编译,但任何新的补丁版本都可能改变。
依赖关系
~120KB