Struct core::hash::sip::SipHasher [] [src]

pub struct SipHasher {
    k0: u64,
    k1: u64,
    length: usize,
    v0: u64,
    v2: u64,
    v1: u64,
    v3: u64,
    tail: u64,
    ntail: usize,
}

An implementation of SipHash 2-4.

See: http://131002.net/siphash/

Consider this as a main "general-purpose" hash for all hashtables: it runs at good speed (competitive with spooky and city) and permits strong keyed hashing. Key your hashtables from a strong RNG, such as rand::Rng.

Although the SipHash algorithm is considered to be cryptographically strong, this implementation has not been reviewed for such purposes. As such, all cryptographic uses of this implementation are strongly discouraged.

Fields

k0
k1
length
v0
v2
v1
v3
tail
ntail

Methods

impl SipHasher

fn new() -> SipHasher

Creates a new SipHasher with the two initial keys set to 0.

fn new_with_keys(key0: u64, key1: u64) -> SipHasher

Creates a SipHasher that is keyed off the provided keys.

fn reset(&mut self)

Trait Implementations

impl Hasher for SipHasher

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

fn finish(&self) -> u64

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_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_isize(&mut self, i: isize)

impl Clone for SipHasher

fn clone(&self) -> SipHasher

fn clone_from(&mut self, source: &Self)

impl Default for SipHasher

fn default() -> SipHasher