Trait enso_prelude::Hasher1.0.0[][src]

pub trait Hasher {
Show methods 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) { ... }
}
Expand description

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.

This trait makes no assumptions about how the various write_* methods are defined and implementations of Hash should not assume that they work one way or another. You cannot assume, for example, that a write_u32 call is equivalent to four calls of write_u8.

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

Required methods

fn finish(&self) -> u64[src]

Expand description

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

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

Expand description

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());
Loading content...

Provided methods

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

Expand description

Writes a single u8 into this hasher.

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

Expand description

Writes a single u16 into this hasher.

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

Expand description

Writes a single u32 into this hasher.

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

Expand description

Writes a single u64 into this hasher.

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

Expand description

Writes a single u128 into this hasher.

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

Expand description

Writes a single usize into this hasher.

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

Expand description

Writes a single i8 into this hasher.

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

Expand description

Writes a single i16 into this hasher.

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

Expand description

Writes a single i32 into this hasher.

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

Expand description

Writes a single i64 into this hasher.

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

Expand description

Writes a single i128 into this hasher.

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

Expand description

Writes a single isize into this hasher.

Loading content...

Implementations on Foreign Types

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

pub fn finish(&self) -> u64[src]

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

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

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

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

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

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

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

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

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

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

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

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

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

impl Hasher for SipHasher[src]

pub fn write(&mut self, msg: &[u8])[src]

pub fn finish(&self) -> u64[src]

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

pub fn finish(&self) -> u64[src]

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

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

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

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

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

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

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

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

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

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

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

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

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

impl Hasher for Hasher

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

pub fn finish(&self) -> u64

impl Hasher for Adler32[src]

pub fn finish(&self) -> u64[src]

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

Loading content...

Implementors

impl Hasher for DefaultHasher1.13.0[src]

pub fn write(&mut self, msg: &[u8])[src]

pub fn finish(&self) -> u64[src]

Loading content...