hw-ip 2.3.3.0 → 2.3.4.0
raw patch · 3 files changed
+12/−1 lines, 3 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ HaskellWorks.Data.Network.Ip.Ip: blockToRange :: IpBlock Canonical -> Range IpAddress
+ HaskellWorks.Data.Network.Ip.Range: rangeToList :: (SafeEnum a, Ord a) => Range a -> [a]
Files
- hw-ip.cabal +1/−1
- src/HaskellWorks/Data/Network/Ip/Ip.hs +6/−0
- src/HaskellWorks/Data/Network/Ip/Range.hs +5/−0
hw-ip.cabal view
@@ -1,6 +1,6 @@ cabal-version: 2.2 name: hw-ip-version: 2.3.3.0+version: 2.3.4.0 license: BSD-3-Clause license-file: LICENSE copyright: 2018-2019 John Ky, David Turnbull, Jian Wan
src/HaskellWorks/Data/Network/Ip/Ip.hs view
@@ -11,6 +11,7 @@ , isCanonical , canonicalise , canonicaliseIpBlock+ , blockToRange , firstIpAddress , lastIpAddress ) where@@ -19,6 +20,7 @@ import Data.Word import GHC.Generics import HaskellWorks.Data.Bits.BitWise+import HaskellWorks.Data.Network.Ip.Range (Range (..)) import HaskellWorks.Data.Network.Ip.Validity import Text.Read @@ -70,6 +72,10 @@ canonicaliseIpBlock :: IpBlock v -> IpBlock Canonical canonicaliseIpBlock (IpBlockV4 b) = IpBlockV4 (V4.canonicaliseIpBlock b) canonicaliseIpBlock (IpBlockV6 b) = IpBlockV6 (V6.canonicaliseIpBlock b)++blockToRange :: IpBlock Canonical -> Range IpAddress+blockToRange (IpBlockV4 b) = let Range s e = V4.blockToRange b in Range (IpAddressV4 s) (IpAddressV4 e)+blockToRange (IpBlockV6 b) = let Range s e = V6.blockToRange b in Range (IpAddressV6 s) (IpAddressV6 e) firstIpAddress :: IpBlock Canonical -> (Word32, Word32, Word32, Word32) firstIpAddress (IpBlockV4 v4Block) = firstIpAddress (IpBlockV6 (V6.fromIpv4Block v4Block))
src/HaskellWorks/Data/Network/Ip/Range.hs view
@@ -1,9 +1,11 @@ {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE MonoLocalBinds #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE TupleSections #-} module HaskellWorks.Data.Network.Ip.Range where +import Data.List (unfoldr) import GHC.Generics import HaskellWorks.Data.Network.Ip.SafeEnum import Prelude hiding (last)@@ -33,3 +35,6 @@ instance Ord a => Contains (Range a) where contains l r = first l <= first r && last l >= last r++rangeToList :: (SafeEnum a, Ord a) => Range a -> [a]+rangeToList (Range a b) = takeWhile (<= b) $ unfoldr (\x -> (x,) <$> safeSucc x) a