#![warn(missing_docs)]
#[macro_use]
extern crate cfg_if;
extern crate fasthash_sys as ffi;
extern crate num_traits;
extern crate seahash;
extern crate xoroshiro128;
#[macro_use]
mod hasher;
pub mod city;
pub mod farm;
pub mod lookup3;
pub mod metro;
pub mod mum;
pub mod murmur;
pub mod murmur2;
pub mod murmur3;
pub mod sea;
pub mod spooky;
pub mod t1ha;
pub mod xx;
pub use hasher::{
BufHasher, FastHash, FastHasher, Fingerprint, HasherExt, RandomState, Seed, StreamHasher,
};
pub use farm::{Hasher128 as FarmHasherExt, Hasher64 as FarmHasher};
pub use lookup3::Hasher32 as Lookup3Hasher;
pub use mum::Hasher64 as MumHasher;
pub use murmur::Hasher32 as MurmurHasher;
pub use murmur3::Hasher32 as Murmur3Hasher;
#[doc(no_inline)]
pub use sea::Hasher64 as SeaHasher;
pub use spooky::{Hasher128 as SpookyHasherExt, Hasher64 as SpookyHasher};
pub use t1ha::{t1ha0, t1ha1, t1ha2};
pub use t1ha2::{Hasher128 as T1haHasherExt, Hasher64 as T1haHasher};
pub use xx::Hasher64 as XXHasher;
cfg_if! {
if #[cfg(target_pointer_width = "64")] {
pub use murmur2::Hasher64_x64 as Murmur2Hasher;
pub use murmur3::Hasher128_x64 as Murmur3HasherExt;
} else {
pub use murmur2::Hasher64_x86 as Murmur2Hasher;
pub use murmur3::Hasher128_x86 as Murmur3HasherExt;
}
}
cfg_if! {
if #[cfg(any(feature = "sse42", target_feature = "sse4.2"))] {
pub use city::{Hasher64 as CityHasher, crc::Hasher128 as CityHasherExt};
pub use metro::{crc::Hasher128_1 as MetroHasherExt, crc::Hasher64_1 as MetroHasher};
} else {
pub use city::{Hasher128 as CityHasherExt, Hasher64 as CityHasher};
pub use metro::{Hasher128_1 as MetroHasherExt, Hasher64_1 as MetroHasher};
}
}