本文简要介绍rust语言中 Trait std::hash::Hasher
的用法。
用法
pub trait Hasher {
fn finish(&self) -> u64;
fn write(&mut self, bytes: &[u8]);
fn write_u8(&mut self, i: u8) { ... }
fn write_u16(&mut self, i: u16) { ... }
fn write_u32(&mut self, i: u32) { ... }
fn write_u64(&mut self, i: u64) { ... }
fn write_u128(&mut self, i: u128) { ... }
fn write_usize(&mut self, i: usize) { ... }
fn write_i8(&mut self, i: i8) { ... }
fn write_i16(&mut self, i: i16) { ... }
fn write_i32(&mut self, i: i32) { ... }
fn write_i64(&mut self, i: i64) { ... }
fn write_i128(&mut self, i: i128) { ... }
fn write_isize(&mut self, i: isize) { ... }
}
散列任意字节流的特征。
Hasher
的实例通常表示在散列数据时更改的状态。
Hasher
提供了一个相当基本的接口,用于检索生成的哈希(使用 finish
),并将整数和字节切片写入实例(使用 write
和 write_u8
等)。大多数时候,Hasher
实例与 Hash
特征结合使用。
此特征不假设如何定义各种write_*
方法,并且 Hash
的实现不应假设它们以一种或另一种方式工作。例如,您不能假设 write_u32
调用等同于 write_u8
的四个调用。
例子
use std::collections::hash_map::DefaultHasher;
use std::hash::Hasher;
let mut hasher = DefaultHasher::new();
hasher.write_u32(1989);
hasher.write_u8(11);
hasher.write_u8(9);
hasher.write(b"Huh?");
println!("Hash is {:x}!", hasher.finish());
相关用法
- Rust Hasher.write用法及代码示例
- Rust Hasher.finish用法及代码示例
- Rust HashSet.get_or_insert_with用法及代码示例
- Rust HashMap.get用法及代码示例
- Rust HashMap.try_insert用法及代码示例
- Rust HashSet.insert用法及代码示例
- Rust HashSet.get_or_insert用法及代码示例
- Rust HashSet用法及代码示例
- Rust HashSet.is_superset用法及代码示例
- Rust HashSet.shrink_to用法及代码示例
- Rust HashMap.keys用法及代码示例
- Rust HashSet.with_hasher用法及代码示例
- Rust HashMap.iter用法及代码示例
- Rust HashMap.iter_mut用法及代码示例
- Rust HashMap.retain用法及代码示例
- Rust HashMap.with_capacity_and_hasher用法及代码示例
- Rust HashSet.with_capacity用法及代码示例
- Rust HashSet.difference用法及代码示例
- Rust HashMap.clear用法及代码示例
- Rust HashMap.reserve用法及代码示例
- Rust HashSet.try_reserve用法及代码示例
- Rust HashMap.with_hasher用法及代码示例
- Rust HashMap.into_keys用法及代码示例
- Rust HashSet.hasher用法及代码示例
- Rust HashMap.into_values用法及代码示例
注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 Trait std::hash::Hasher。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。