murmur-hash-0.1.0.10: MurmurHash2 implementation for Haskell.
Copyright(c) Thomas Schilling 2010
LicenseBSD-style
Maintainernominolo@gmail.com
Stabilityexperimental
Portabilityportable
Safe HaskellSafe-Inferred
LanguageHaskell2010

Data.Digest.Murmur32

Description

Type class and primitives for constructing 32 bit hashes using the MurmurHash2 algorithm. See http://murmurhash.googlepages.com for details on MurmurHash2.

Synopsis

Documentation

data Hash32 Source #

A 32 bit hash.

Instances

Instances details
Bounded Hash32 Source # 
Instance details

Defined in Data.Digest.Murmur32

Eq Hash32 Source # 
Instance details

Defined in Data.Digest.Murmur32

Methods

(==) :: Hash32 -> Hash32 -> Bool #

(/=) :: Hash32 -> Hash32 -> Bool #

Ord Hash32 Source # 
Instance details

Defined in Data.Digest.Murmur32

Show Hash32 Source # 
Instance details

Defined in Data.Digest.Murmur32

asWord32 :: Hash32 -> Word32 Source #

Extract 32 bit word from hash.

class Hashable32 a where Source #

Methods

hash32Add :: a -> Hash32 -> Hash32 Source #

Instances

Instances details
Hashable32 Bool Source # 
Instance details

Defined in Data.Digest.Murmur32

Hashable32 Char Source # 
Instance details

Defined in Data.Digest.Murmur32

Hashable32 Int Source # 
Instance details

Defined in Data.Digest.Murmur32

Methods

hash32Add :: Int -> Hash32 -> Hash32 Source #

Hashable32 Integer Source # 
Instance details

Defined in Data.Digest.Murmur32

Hashable32 Word32 Source # 
Instance details

Defined in Data.Digest.Murmur32

Hashable32 () Source # 
Instance details

Defined in Data.Digest.Murmur32

Methods

hash32Add :: () -> Hash32 -> Hash32 Source #

Hashable32 ByteString Source # 
Instance details

Defined in Data.Digest.Murmur32

Hashable32 ByteString Source # 
Instance details

Defined in Data.Digest.Murmur32

Hashable32 a => Hashable32 [a] Source # 
Instance details

Defined in Data.Digest.Murmur32

Methods

hash32Add :: [a] -> Hash32 -> Hash32 Source #

Hashable32 a => Hashable32 (Maybe a) Source # 
Instance details

Defined in Data.Digest.Murmur32

Methods

hash32Add :: Maybe a -> Hash32 -> Hash32 Source #

(Hashable32 a, Hashable32 b) => Hashable32 (Either a b) Source # 
Instance details

Defined in Data.Digest.Murmur32

Methods

hash32Add :: Either a b -> Hash32 -> Hash32 Source #

(Hashable32 a, Hashable32 b) => Hashable32 (a, b) Source # 
Instance details

Defined in Data.Digest.Murmur32

Methods

hash32Add :: (a, b) -> Hash32 -> Hash32 Source #

(Hashable32 a, Hashable32 b, Hashable32 c) => Hashable32 (a, b, c) Source # 
Instance details

Defined in Data.Digest.Murmur32

Methods

hash32Add :: (a, b, c) -> Hash32 -> Hash32 Source #

(Hashable32 a, Hashable32 b, Hashable32 c, Hashable32 d) => Hashable32 (a, b, c, d) Source # 
Instance details

Defined in Data.Digest.Murmur32

Methods

hash32Add :: (a, b, c, d) -> Hash32 -> Hash32 Source #

hash32 :: Hashable32 a => a -> Hash32 Source #

Create a hash using the default seed.

hash32WithSeed :: Hashable32 a => Word32 -> a -> Hash32 Source #

Create a hash using a custom seed.

The seed should be non-zero, but other than that can be an arbitrary number. Different seeds will give different hashes, and thus (most likely) different hash collisions.