Trait ahash::CallHasher

source ·
pub trait CallHasher {
    // Required method
    fn get_hash<H: Hash + ?Sized, B: BuildHasher>(
        value: &H,
        build_hasher: &B
    ) -> u64;
}
Expand description

Provides a way to get an optimized hasher for a given data type. Rather than using a Hasher generically which can hash any value, this provides a way to get a specialized hash for a specific type. So this may be faster for primitive types.

§Example

use std::hash::BuildHasher;
use ahash::RandomState;
use ahash::CallHasher;

let hash_builder = RandomState::new();
//...
let value: u32 = 17;
let hash = u32::get_hash(&value, &hash_builder);

Note that the type used to invoke get_hash must be the same a the type of value passed. For example get a hasher specialized on [u8] can invoke:

/// use std::hash::BuildHasher;
let bytes: [u8; 4] = [1, 2, 3, 4];
let hash = <[u8]>::get_hash(&bytes, &hash_builder);

Required Methods§

source

fn get_hash<H: Hash + ?Sized, B: BuildHasher>( value: &H, build_hasher: &B ) -> u64

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl CallHasher for i8

source§

fn get_hash<H: Hash + ?Sized, B: BuildHasher>( value: &H, build_hasher: &B ) -> u64

source§

impl CallHasher for i16

source§

fn get_hash<H: Hash + ?Sized, B: BuildHasher>( value: &H, build_hasher: &B ) -> u64

source§

impl CallHasher for i32

source§

fn get_hash<H: Hash + ?Sized, B: BuildHasher>( value: &H, build_hasher: &B ) -> u64

source§

impl CallHasher for i64

source§

fn get_hash<H: Hash + ?Sized, B: BuildHasher>( value: &H, build_hasher: &B ) -> u64

source§

impl CallHasher for i128

source§

fn get_hash<H: Hash + ?Sized, B: BuildHasher>( value: &H, build_hasher: &B ) -> u64

source§

impl CallHasher for isize

source§

fn get_hash<H: Hash + ?Sized, B: BuildHasher>( value: &H, build_hasher: &B ) -> u64

source§

impl CallHasher for str

source§

fn get_hash<H: Hash + ?Sized, B: BuildHasher>( value: &H, build_hasher: &B ) -> u64

source§

impl CallHasher for u8

source§

fn get_hash<H: Hash + ?Sized, B: BuildHasher>( value: &H, build_hasher: &B ) -> u64

source§

impl CallHasher for u16

source§

fn get_hash<H: Hash + ?Sized, B: BuildHasher>( value: &H, build_hasher: &B ) -> u64

source§

impl CallHasher for u32

source§

fn get_hash<H: Hash + ?Sized, B: BuildHasher>( value: &H, build_hasher: &B ) -> u64

source§

impl CallHasher for u64

source§

fn get_hash<H: Hash + ?Sized, B: BuildHasher>( value: &H, build_hasher: &B ) -> u64

source§

impl CallHasher for u128

source§

fn get_hash<H: Hash + ?Sized, B: BuildHasher>( value: &H, build_hasher: &B ) -> u64

source§

impl CallHasher for usize

source§

fn get_hash<H: Hash + ?Sized, B: BuildHasher>( value: &H, build_hasher: &B ) -> u64

source§

impl CallHasher for String

source§

fn get_hash<H: Hash + ?Sized, B: BuildHasher>( value: &H, build_hasher: &B ) -> u64

source§

impl CallHasher for Vec<u8>

source§

fn get_hash<H: Hash + ?Sized, B: BuildHasher>( value: &H, build_hasher: &B ) -> u64

source§

impl CallHasher for [u8]

source§

fn get_hash<H: Hash + ?Sized, B: BuildHasher>( value: &H, build_hasher: &B ) -> u64

Implementors§

source§

impl<T> CallHasher for T
where T: Hash + ?Sized,