# Struct core::hash::SipHasher 1.0.0 [−] [src]

    pub struct SipHasher(_);

An implementation of SipHash 2-4.

See: https://131002.net/siphash/

This is currently the default hashing function used by standard library (eg. `collections::HashMap` uses it by default).

SipHash is a general-purpose hashing function: it runs at a good speed (competitive with Spooky and City) and permits strong keyed hashing. This lets you key your hashtables from a strong RNG, such as `rand::os::OsRng`.

Although the SipHash algorithm is considered to be generally strong, it is not intended for cryptographic purposes. As such, all cryptographic uses of this implementation are strongly discouraged.

## Methods

### `impl SipHasher`
[src]

#### `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.

## Trait Implementations

### `impl Default for SipHasher`
[src]

#### `fn default() -> SipHasher`

Returns the "default value" for a type. Read more

### `impl Clone for SipHasher`
[src]

#### `fn clone(&self) -> SipHasher`

Returns a copy of the value. Read more

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

Performs copy-assignment from `source`. Read more

### `impl Debug for SipHasher`
[src]

#### `fn fmt(&self, __arg_0: &mut Formatter) -> Result`

Formats the value using the given formatter.

### `impl Hasher for SipHasher`
[src]

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

Writes some data into this `Hasher`

#### `fn finish(&self) -> u64`

Completes a round of hashing, producing the output hash generated.

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

Write a single `u8` into this hasher

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

Write a single `u16` into this hasher.

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

Write a single `u32` into this hasher.

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

Write a single `u64` into this hasher.

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

Write a single `usize` into this hasher.

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

Write a single `i8` into this hasher.

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

Write a single `i16` into this hasher.

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

Write a single `i32` into this hasher.

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

Write a single `i64` into this hasher.

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

Write a single `isize` into this hasher.

# Help

## Keyboard Shortcuts

?
  Show this help dialog
S
  Focus the search field
⇤
  Move up in search results
⇥
  Move down in search results
⏎
  Go to active search result
+
  Collapse/expand all sections

## Search Tricks

Prefix searches with a type followed by a colon (e.g. `fn:`) to restrict the search to a given type.

Accepted types are: `fn`, `mod`, `struct`, `enum`, `trait`, `type`, `macro`, and `const`.

Search functions by type signature (e.g. `vec -> usize` or `* -> vec`)