7个不稳定版本 (3个破坏性更新)
0.4.0 | 2024年6月30日 |
---|---|
0.3.1 | 2024年6月30日 |
0.2.2 | 2024年6月14日 |
0.1.0 | 2024年6月9日 |
在 数据结构 中排名第 1468
每月下载量 386
17KB
369 行
可哈希Map
该软件包提供了简单的包装器 HashableMap
和 HashableSet
,它们在 std::collections::HashMap
和 std::collections::HashSet
周围实现 Hash
,无需任何额外依赖。
实现细节
HashableMap
和 HashableSet
的 Hash
实现遵循所需的属性
k1 == k2 -> hash(k1) == hash(k2)
换句话说,如果两个键相等,它们的哈希也必须相等。
实现是泛型,适用于所有 BuildHasher
实现,这意味着您可以使用默认的 RandomState
以及其他哈希构建器实现,例如 FxBuildHasher
。唯一的要求是哈希构建器构建的哈希器实现 Default
,并且默认实现在不同实例中产生相同的哈希。这一要求是由于该软件包使用由哈希构建器构建的默认哈希器实例来计算条目的哈希。更正式地说,为了构建条目的哈希,我们使用 D::default()
的实例,其中 S: BuildHasher<Hasher = D>, D: Hasher + Default
。然后使用交换运算符 wrapping_add
将条目的哈希相加,这样不同的条目顺序仍然会产生相同的哈希,这是满足上述 Hash
属性的要求。
Serde支持
此软件包具有启用序列化和反序列化支持的选项,通过启用 serde
功能。
依赖项
~170KB