packages feed

ip 1.7.2 → 1.7.3

raw patch · 2 files changed

+15/−1 lines, 2 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- Net.IP: instance GHC.Arr.Ix Net.IP.IP
- Net.IPv4: instance GHC.Arr.Ix Net.IPv4.IPv4
- Net.IPv6: instance GHC.Arr.Ix Net.IPv6.IPv6
- Net.Mac: instance GHC.Arr.Ix Net.Mac.Mac
+ Net.IP: instance GHC.Ix.Ix Net.IP.IP
+ Net.IPv4: instance GHC.Ix.Ix Net.IPv4.IPv4
+ Net.IPv6: instance GHC.Ix.Ix Net.IPv6.IPv6
+ Net.Mac: decodeOctets :: ByteString -> Maybe Mac
+ Net.Mac: encodeShort :: Mac -> ShortText
+ Net.Mac: instance GHC.Ix.Ix Net.Mac.Mac

Files

ip.cabal view
@@ -1,6 +1,6 @@ cabal-version: 2.2 name: ip-version: 1.7.2+version: 1.7.3 synopsis: Library for IP and MAC addresses homepage: https://github.com/andrewthad/haskell-ip#readme license: BSD-3-Clause
src/Net/Mac.hs view
@@ -29,6 +29,8 @@   , builder   , parser   , parserWith+    -- ** ShortText+  , encodeShort     -- ** UTF-8 ByteString   , encodeUtf8   , encodeWithUtf8@@ -39,6 +41,7 @@   , parserWithUtf8     -- ** ByteString   , decodeBytes+  , decodeOctets     -- ** UTF-8 Bytes   , boundedBuilderUtf8   , decodeUtf8Bytes@@ -59,15 +62,18 @@ import Data.Aeson (ToJSONKeyFunction(..),FromJSONKeyFunction(..)) import Data.Bits ((.|.),unsafeShiftL,unsafeShiftR,(.&.)) import Data.ByteString (ByteString)+import Data.ByteString.Short.Internal (ShortByteString(SBS)) import Data.Char (ord,chr) import Data.Data (Data) import Data.Hashable (Hashable) import Data.Ix (Ix)+import Data.Primitive.ByteArray (ByteArray(ByteArray)) import Data.Primitive.Types (Prim(..)) #if !MIN_VERSION_base(4,11,0) import Data.Semigroup ((<>)) #endif import Data.Text (Text)+import Data.Text.Short (ShortText) import Data.Word import Data.Word.Synthetic.Word12 (Word12) import GHC.Enum (predError, succError)@@ -77,6 +83,7 @@ import Text.ParserCombinators.ReadPrec (prec,step) import Text.Read (Read(..),Lexeme(Ident),lexP,parens) +import qualified Arithmetic.Nat as Nat import qualified Data.Aeson as Aeson import qualified Data.Aeson.Types as Aeson import qualified Data.Attoparsec.ByteString as AB@@ -93,6 +100,7 @@ import qualified Data.Text.Builder.Fixed as TFB import qualified Data.Text.IO as TIO import qualified Data.Text.Lazy.Builder as TBuilder+import qualified Data.Text.Short.Unsafe as TS import qualified Data.Text as Text ()  -- $setup@@ -414,6 +422,12 @@  decodeLenientUtf8 :: ByteString -> Maybe Mac decodeLenientUtf8 bs = rightToMaybe (AB.parseOnly (parserLenientUtf8 <* AB.endOfInput) bs)++-- | Encode a 'Mac' address as colon-separated hexadecimal octets,+--   preferring lowercase for alphabetical characters.+encodeShort :: Mac -> ShortText+encodeShort !m = case BBB.run Nat.constant (boundedBuilderUtf8 m) of+  ByteArray x -> TS.fromShortByteStringUnsafe (SBS x)  -- | Encode a 'Mac' address as colon-separated hexadecimal octets, --   preferring lowercase for alphabetical characters.