foundation-0.0.30: Alternative prelude with batteries and no dependencies
LicenseBSD-style
MaintainerFoundation
Safe HaskellNone
LanguageHaskell2010

Foundation.Hashing

Description

 
Synopsis

Documentation

class Hashable a where #

Type with the ability to be hashed

Hashable doesn't have any specific rules, and it's made for raw speed. More specifically don't expect different type representing the same data to hash to the same value

hashMix (1 :: Integer) /= hashMix (1 :: Word8)

True

Methods

hashMix :: Hasher st => a -> st -> st #

Instances

Instances details
Hashable Int16 # 
Instance details

Defined in Foundation.Hashing.Hashable

Methods

hashMix :: Hasher st => Int16 -> st -> st #

Hashable Int32 # 
Instance details

Defined in Foundation.Hashing.Hashable

Methods

hashMix :: Hasher st => Int32 -> st -> st #

Hashable Int64 # 
Instance details

Defined in Foundation.Hashing.Hashable

Methods

hashMix :: Hasher st => Int64 -> st -> st #

Hashable Int8 # 
Instance details

Defined in Foundation.Hashing.Hashable

Methods

hashMix :: Hasher st => Int8 -> st -> st #

Hashable Word16 # 
Instance details

Defined in Foundation.Hashing.Hashable

Methods

hashMix :: Hasher st => Word16 -> st -> st #

Hashable Word32 # 
Instance details

Defined in Foundation.Hashing.Hashable

Methods

hashMix :: Hasher st => Word32 -> st -> st #

Hashable Word64 # 
Instance details

Defined in Foundation.Hashing.Hashable

Methods

hashMix :: Hasher st => Word64 -> st -> st #

Hashable Word8 # 
Instance details

Defined in Foundation.Hashing.Hashable

Methods

hashMix :: Hasher st => Word8 -> st -> st #

Hashable Word128 # 
Instance details

Defined in Foundation.Hashing.Hashable

Methods

hashMix :: Hasher st => Word128 -> st -> st #

Hashable Word256 # 
Instance details

Defined in Foundation.Hashing.Hashable

Methods

hashMix :: Hasher st => Word256 -> st -> st #

Hashable String # 
Instance details

Defined in Foundation.Hashing.Hashable

Methods

hashMix :: Hasher st => String -> st -> st #

Hashable IPv4 # 
Instance details

Defined in Foundation.Network.IPv4

Methods

hashMix :: Hasher st => IPv4 -> st -> st #

Hashable IPv6 # 
Instance details

Defined in Foundation.Network.IPv6

Methods

hashMix :: Hasher st => IPv6 -> st -> st #

Hashable UUID # 
Instance details

Defined in Foundation.UUID

Methods

hashMix :: Hasher st => UUID -> st -> st #

Hashable Integer # 
Instance details

Defined in Foundation.Hashing.Hashable

Methods

hashMix :: Hasher st => Integer -> st -> st #

Hashable Natural # 
Instance details

Defined in Foundation.Hashing.Hashable

Methods

hashMix :: Hasher st => Natural -> st -> st #

Hashable a => Hashable (Array a) # 
Instance details

Defined in Foundation.Hashing.Hashable

Methods

hashMix :: Hasher st => Array a -> st -> st #

PrimType a => Hashable (UArray a) # 
Instance details

Defined in Foundation.Hashing.Hashable

Methods

hashMix :: Hasher st => UArray a -> st -> st #

Hashable a => Hashable [a] # 
Instance details

Defined in Foundation.Hashing.Hashable

Methods

hashMix :: Hasher st => [a] -> st -> st #

(Hashable a, Hashable b) => Hashable (Tuple2 a b) # 
Instance details

Defined in Foundation.Hashing.Hashable

Methods

hashMix :: Hasher st => Tuple2 a b -> st -> st #

(Hashable a, Hashable b) => Hashable (a, b) # 
Instance details

Defined in Foundation.Hashing.Hashable

Methods

hashMix :: Hasher st => (a, b) -> st -> st #

(Hashable a, Hashable b, Hashable c) => Hashable (Tuple3 a b c) # 
Instance details

Defined in Foundation.Hashing.Hashable

Methods

hashMix :: Hasher st => Tuple3 a b c -> st -> st #

(Hashable a, Hashable b, Hashable c) => Hashable (a, b, c) # 
Instance details

Defined in Foundation.Hashing.Hashable

Methods

hashMix :: Hasher st => (a, b, c) -> st -> st #

(Hashable a, Hashable b, Hashable c, Hashable d) => Hashable (Tuple4 a b c d) # 
Instance details

Defined in Foundation.Hashing.Hashable

Methods

hashMix :: Hasher st => Tuple4 a b c d -> st -> st #

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

Defined in Foundation.Hashing.Hashable

Methods

hashMix :: Hasher st => (a, b, c, d) -> st -> st #

(Hashable a, Hashable b, Hashable c, Hashable d, Hashable e) => Hashable (a, b, c, d, e) # 
Instance details

Defined in Foundation.Hashing.Hashable

Methods

hashMix :: Hasher st => (a, b, c, d, e) -> st -> st #

(Hashable a, Hashable b, Hashable c, Hashable d, Hashable e, Hashable f) => Hashable (a, b, c, d, e, f) # 
Instance details

Defined in Foundation.Hashing.Hashable

Methods

hashMix :: Hasher st => (a, b, c, d, e, f) -> st -> st #

class Hasher st #

Incremental Hashing state. Represent an hashing algorithm

the base primitive of this class is hashMix8, append mix a Word8 in the state

The class allow to define faster mixing function that works on bigger Word size and any unboxed array of any PrimType elements

Minimal complete definition

hashNew, hashNewParam, hashMix8, hashEnd

Instances

Instances details
Hasher FNV1_32 # 
Instance details

Defined in Foundation.Hashing.FNV

Hasher FNV1_64 # 
Instance details

Defined in Foundation.Hashing.FNV

Hasher FNV1a_32 # 
Instance details

Defined in Foundation.Hashing.FNV

Hasher FNV1a_64 # 
Instance details

Defined in Foundation.Hashing.FNV

Hasher Sip1_3 # 
Instance details

Defined in Foundation.Hashing.SipHash

Hasher Sip2_4 # 
Instance details

Defined in Foundation.Hashing.SipHash

Specific methods

data FNV1_32 #

FNV1 32 bit state

Instances

Instances details
Hasher FNV1_32 # 
Instance details

Defined in Foundation.Hashing.FNV

data FNV1_64 #

FNV1 64 bit state

Instances

Instances details
Hasher FNV1_64 # 
Instance details

Defined in Foundation.Hashing.FNV

data FNV1a_32 #

FNV1a 32 bit state

Instances

Instances details
Hasher FNV1a_32 # 
Instance details

Defined in Foundation.Hashing.FNV

data FNV1a_64 #

FNV1a 64 bit state

Instances

Instances details
Hasher FNV1a_64 # 
Instance details

Defined in Foundation.Hashing.FNV

data Sip1_3 #

Sip State 1-3 (1 compression rounds, 3 digest rounds)

Instances

Instances details
Hasher Sip1_3 # 
Instance details

Defined in Foundation.Hashing.SipHash

data Sip2_4 #

Sip State 2-4 (2 compression rounds, 4 digest rounds)

Instances

Instances details
Hasher Sip2_4 # 
Instance details

Defined in Foundation.Hashing.SipHash