iri-0.3.2: library/Iri/Data/Instances/Hashable.hs
module Iri.Data.Instances.Hashable
where
import Iri.Prelude
import Iri.Data.Types
import Iri.Data.Instances.Generic
import qualified Net.IPv6 as B
instance Hashable Iri
instance Hashable Scheme
instance Hashable Hierarchy
instance Hashable Authority
instance Hashable UserInfo
instance Hashable User
instance Hashable Password
instance Hashable Host where
hashWithSalt salt host =
hashWithSalt salt $
case host of
NamedHost regName -> hashWithSalt 0 regName
IpV4Host ip -> hashWithSalt 1 ip
IpV6Host (B.IPv6 a b) -> (hashWithSalt (hashWithSalt 2 a) b)
instance Hashable RegName
instance Hashable DomainLabel
instance Hashable Port
instance Hashable Path
instance Hashable PathSegment
instance Hashable Query
instance Hashable Fragment
instance Hashable HttpIri
instance Hashable Security