当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Rust BuildHasher用法及代码示例


本文简要介绍rust语言中 Trait std::hash::BuildHasher 的用法。

用法

pub trait BuildHasher {
    type Hasher: Hasher;
    fn build_hasher(&self) -> Self::Hasher;

    fn hash_one<T>(&self, x: T) -> u64    where        T: Hash,
    { ... }
}

用于创建 Hasher 实例的特征。

BuildHasher 通常用于(例如,由 HashMap )为每个键创建 Hasher ,以便它们彼此独立地散列,因为 Hasher 包含状态。

对于 BuildHasher 的每个实例,由 build_hasher 创建的 Hasher 应该是相同的。也就是说,如果将相同的字节流馈入每个哈希器,也会生成相同的输出。

例子

use std::collections::hash_map::RandomState;
use std::hash::{BuildHasher, Hasher};

let s = RandomState::new();
let mut hasher_1 = s.build_hasher();
let mut hasher_2 = s.build_hasher();

hasher_1.write_u32(8128);
hasher_2.write_u32(8128);

assert_eq!(hasher_1.finish(), hasher_2.finish());

相关用法


注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 Trait std::hash::BuildHasher。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。