1.0.0[][src]Trait std::hash::Hasher

pub trait Hasher {
    fn finish(&self) -> u64;
fn write(&mut self, bytes: &[u8]); default fn write_u8(&mut self, i: u8) { ... }
default fn write_u16(&mut self, i: u16) { ... }
default fn write_u32(&mut self, i: u32) { ... }
default fn write_u64(&mut self, i: u64) { ... }
default fn write_u128(&mut self, i: u128) { ... }
default fn write_usize(&mut self, i: usize) { ... }
default fn write_i8(&mut self, i: i8) { ... }
default fn write_i16(&mut self, i: i16) { ... }
default fn write_i32(&mut self, i: i32) { ... }
default fn write_i64(&mut self, i: i64) { ... }
default fn write_i128(&mut self, i: i128) { ... }
default fn write_isize(&mut self, i: isize) { ... } }

A trait for hashing an arbitrary stream of bytes.

Instances of Hasher usually represent state that is changed while hashing data.

Hasher provides a fairly basic interface for retrieving the generated hash (with finish), and writing integers as well as slices of bytes into an instance (with write and write_u8 etc.). Most of the time, Hasher instances are used in conjunction with the Hash trait.

Examples

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());Run

Required methods

fn finish(&self) -> u64

Returns the hash value for the values written so far.

Despite its name, the method does not reset the hasher’s internal state. Additional writes will continue from the current value. If you need to start a fresh hash value, you will have to create a new hasher.

Examples

use std::collections::hash_map::DefaultHasher;
use std::hash::Hasher;

let mut hasher = DefaultHasher::new();
hasher.write(b"Cool!");

println!("Hash is {:x}!", hasher.finish());Run

fn write(&mut self, bytes: &[u8])

Writes some data into this Hasher.

Examples

use std::collections::hash_map::DefaultHasher;
use std::hash::Hasher;

let mut hasher = DefaultHasher::new();
let data = [0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef];

hasher.write(&data);

println!("Hash is {:x}!", hasher.finish());Run
Loading content...

Provided methods

default fn write_u8(&mut self, i: u8)
1.3.0

Writes a single u8 into this hasher.

default fn write_u16(&mut self, i: u16)
1.3.0

Writes a single u16 into this hasher.

default fn write_u32(&mut self, i: u32)
1.3.0

Writes a single u32 into this hasher.

default fn write_u64(&mut self, i: u64)
1.3.0

Writes a single u64 into this hasher.

default fn write_u128(&mut self, i: u128)
1.26.0

Writes a single u128 into this hasher.

default fn write_usize(&mut self, i: usize)
1.3.0

Writes a single usize into this hasher.

default fn write_i8(&mut self, i: i8)
1.3.0

Writes a single i8 into this hasher.

default fn write_i16(&mut self, i: i16)
1.3.0

Writes a single i16 into this hasher.

default fn write_i32(&mut self, i: i32)
1.3.0

Writes a single i32 into this hasher.

default fn write_i64(&mut self, i: i64)
1.3.0

Writes a single i64 into this hasher.

default fn write_i128(&mut self, i: i128)
1.26.0

Writes a single i128 into this hasher.

default fn write_isize(&mut self, i: isize)
1.3.0

Writes a single isize into this hasher.

Loading content...

Implementors

impl Hasher for DefaultHasher[src]

default fn write_u8(&mut self, i: u8)
1.3.0
[src]

default fn write_u16(&mut self, i: u16)
1.3.0
[src]

default fn write_u32(&mut self, i: u32)
1.3.0
[src]

default fn write_u64(&mut self, i: u64)
1.3.0
[src]

default fn write_u128(&mut self, i: u128)
1.26.0
[src]

default fn write_usize(&mut self, i: usize)
1.3.0
[src]

default fn write_i8(&mut self, i: i8)
1.3.0
[src]

default fn write_i16(&mut self, i: i16)
1.3.0
[src]

default fn write_i32(&mut self, i: i32)
1.3.0
[src]

default fn write_i64(&mut self, i: i64)
1.3.0
[src]

default fn write_i128(&mut self, i: i128)
1.26.0
[src]

default fn write_isize(&mut self, i: isize)
1.3.0
[src]

impl Hasher for SipHasher[src]

default fn write_u8(&mut self, i: u8)
1.3.0
[src]

default fn write_u16(&mut self, i: u16)
1.3.0
[src]

default fn write_u32(&mut self, i: u32)
1.3.0
[src]

default fn write_u64(&mut self, i: u64)
1.3.0
[src]

default fn write_u128(&mut self, i: u128)
1.26.0
[src]

default fn write_usize(&mut self, i: usize)
1.3.0
[src]

default fn write_i8(&mut self, i: i8)
1.3.0
[src]

default fn write_i16(&mut self, i: i16)
1.3.0
[src]

default fn write_i32(&mut self, i: i32)
1.3.0
[src]

default fn write_i64(&mut self, i: i64)
1.3.0
[src]

default fn write_i128(&mut self, i: i128)
1.26.0
[src]

default fn write_isize(&mut self, i: isize)
1.3.0
[src]

impl<'_, H> Hasher for &'_ mut H where
    H: Hasher + ?Sized
[src]

impl<T> Hasher for Box<T> where
    T: Hasher + ?Sized
[src]

Loading content...