iri 0.3 → 0.3.1
raw patch · 5 files changed
+143/−1 lines, 5 filesdep +hashabledep +vector-instancesPVP ok
version bump matches the API change (PVP)
Dependencies added: hashable, vector-instances
API changes (from Hackage documentation)
Files
- iri.cabal +6/−1
- library/Iri/Data/Instances/Generic.hs +40/−0
- library/Iri/Data/Instances/Hashable.hs +48/−0
- library/Iri/Data/Instances/Ord.hs +41/−0
- library/Iri/Prelude.hs +8/−0
iri.cabal view
@@ -1,7 +1,7 @@ name: iri version:- 0.3+ 0.3.1 category: URI, URL, IRI, Network synopsis:@@ -66,6 +66,9 @@ Iri.Data.Instances.Lift Iri.Data.Instances.Show Iri.Data.Instances.Eq+ Iri.Data.Instances.Hashable+ Iri.Data.Instances.Ord+ Iri.Data.Instances.Generic Iri.Prelude Iri.Utf8CodePoint Iri.Vector@@ -84,10 +87,12 @@ attoparsec >=0.13 && <0.14, punycode >=2 && <3, ip >=1.1 && <2,+ hashable >=1.2 && <2, text ==1.*, text-builder >=0.5.1 && <0.6, bytestring >=0.10 && <0.11, vector >=0.10 && <0.13,+ vector-instances >=3.4 && <4, vector-builder >=0.3.4 && <0.4, profunctors >=5.2 && <6, contravariant >=1.4 && <2,
+ library/Iri/Data/Instances/Generic.hs view
@@ -0,0 +1,40 @@+module Iri.Data.Instances.Generic+where++import Iri.Prelude+import Iri.Data.Types+++deriving instance Generic Iri++deriving instance Generic Scheme++deriving instance Generic Hierarchy++deriving instance Generic Authority++deriving instance Generic UserInfo++deriving instance Generic User++deriving instance Generic Password++deriving instance Generic Host++deriving instance Generic RegName++deriving instance Generic DomainLabel++deriving instance Generic Port++deriving instance Generic Path++deriving instance Generic PathSegment++deriving instance Generic Query++deriving instance Generic Fragment++deriving instance Generic HttpIri++deriving instance Generic Security
+ library/Iri/Data/Instances/Hashable.hs view
@@ -0,0 +1,48 @@+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 2 (hashWithSalt (fromIntegral 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
+ library/Iri/Data/Instances/Ord.hs view
@@ -0,0 +1,41 @@+module Iri.Data.Instances.Ord+where++import Iri.Prelude+import Iri.Data.Types+import Iri.Data.Instances.Eq+++deriving instance Ord Iri++deriving instance Ord Scheme++deriving instance Ord Hierarchy++deriving instance Ord Authority++deriving instance Ord UserInfo++deriving instance Ord User++deriving instance Ord Password++deriving instance Ord Host++deriving instance Ord RegName++deriving instance Ord DomainLabel++deriving instance Ord Port++deriving instance Ord Path++deriving instance Ord PathSegment++deriving instance Ord Query++deriving instance Ord Fragment++deriving instance Ord HttpIri++deriving instance Ord Security
library/Iri/Prelude.hs view
@@ -28,6 +28,14 @@ ------------------------- import Data.Semigroup as Exports +-- hashable+-------------------------+import Data.Hashable as Exports++-- vector-instances+-------------------------+import Data.Vector.Instances ()+ -- bytestring ------------------------- import Data.ByteString as Exports (ByteString)