Copyright | (c) Thomas Schilling 2010 |
---|---|
License | BSD-style |
Maintainer | nominolo@gmail.com |
Stability | experimental |
Portability | portable |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Type class and primitives for constructing 32 bit hashes using the MurmurHash2 algorithm. See http://murmurhash.googlepages.com for details on MurmurHash2.
Synopsis
- data Hash32
- asWord32 :: Hash32 -> Word32
- class Hashable32 a where
- hash32AddWord32 :: Word32 -> Hash32 -> Hash32
- hash32AddInt :: Int -> Hash32 -> Hash32
- hash32 :: Hashable32 a => a -> Hash32
- hash32WithSeed :: Hashable32 a => Word32 -> a -> Hash32
Documentation
A 32 bit hash.
class Hashable32 a where Source #
Instances
Hashable32 ByteString Source # | |
Hashable32 ByteString Source # | |
Hashable32 Word32 Source # | |
Hashable32 Integer Source # | |
Hashable32 () Source # | |
Hashable32 Bool Source # | |
Hashable32 Char Source # | |
Hashable32 Int Source # | |
Hashable32 a => Hashable32 (Maybe a) Source # | |
Hashable32 a => Hashable32 [a] Source # | |
(Hashable32 a, Hashable32 b) => Hashable32 (Either a b) Source # | |
(Hashable32 a, Hashable32 b) => Hashable32 (a, b) Source # | |
(Hashable32 a, Hashable32 b, Hashable32 c) => Hashable32 (a, b, c) Source # | |
(Hashable32 a, Hashable32 b, Hashable32 c, Hashable32 d) => Hashable32 (a, b, c, d) Source # | |
hash32AddWord32 :: Word32 -> Hash32 -> Hash32 Source #
hash32AddInt :: Int -> 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.