當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。