packages feed

data-endian 0.0.1 → 0.1

raw patch · 3 files changed

+55/−25 lines, 3 filesdep ~basePVP ok

version bump matches the API change (PVP)

Dependency ranges changed: base

API changes (from Hackage documentation)

+ Data.Endian: BigEndian :: Endian
+ Data.Endian: LittleEndian :: Endian
+ Data.Endian: data Endian
+ Data.Endian: instance Bounded Endian
+ Data.Endian: instance Constructor C1_0Endian
+ Data.Endian: instance Constructor C1_1Endian
+ Data.Endian: instance Data Endian
+ Data.Endian: instance Datatype D1Endian
+ Data.Endian: instance Enum Endian
+ Data.Endian: instance Eq Endian
+ Data.Endian: instance Generic Endian
+ Data.Endian: instance Ix Endian
+ Data.Endian: instance Ord Endian
+ Data.Endian: instance Read Endian
+ Data.Endian: instance Show Endian
+ Data.Endian: instance Typeable Endian
+ Data.Endian: isBigEndian :: Endian -> Bool
+ Data.Endian: isLittleEndian :: Endian -> Bool

Files

LICENSE view
@@ -1,4 +1,4 @@-Copyright (c) 2011, Mikhail Vorozhtsov+Copyright (c) 2011-2014, Mikhail Vorozhtsov All rights reserved.  Redistribution and use in source and binary forms, with or without 
data-endian.cabal view
@@ -1,5 +1,5 @@ Name: data-endian-Version: 0.0.1+Version: 0.1 Category: Data Stability: experimental Synopsis: Endian-sensitive data@@ -11,7 +11,7 @@  Author: Mikhail Vorozhtsov <mikhail.vorozhtsov@gmail.com> Maintainer: Mikhail Vorozhtsov <mikhail.vorozhtsov@gmail.com>-Copyright: 2011 Mikhail Vorozhtsov <mikhail.vorozhtsov@gmail.com>+Copyright: 2011-2014 Mikhail Vorozhtsov <mikhail.vorozhtsov@gmail.com> License: BSD3 License-File: LICENSE @@ -23,9 +23,8 @@   Location: https://github.com/mvv/data-endian.git  Library-  Build-Depends: base < 5+  Build-Depends: base >= 4 && < 5   Hs-Source-Dirs: src   GHC-Options: -Wall   Exposed-Modules:     Data.Endian-
src/Data/Endian.hs view
@@ -1,14 +1,27 @@ {-# LANGUAGE UnicodeSyntax #-} {-# LANGUAGE CPP #-}+{-# LANGUAGE DeriveDataTypeable #-}+#if MIN_VERSION_base(4,6,0)+{-# LANGUAGE DeriveGeneric #-}+#endif -module Data.Endian (-    EndianSensitive(..),-    toBigEndian,-    fromBigEndian,-    toLittleEndian,-    fromLittleEndian+module Data.Endian+  ( Endian(..)+  , isLittleEndian+  , isBigEndian+  , EndianSensitive(..)+  , toLittleEndian+  , fromLittleEndian+  , toBigEndian+  , fromBigEndian   ) where +import Data.Typeable (Typeable)+import Data.Data (Data)+#if MIN_VERSION_base(4,6,0)+import GHC.Generics (Generic)+#endif+import Data.Ix (Ix) import Data.Int import Data.Word import Data.Bits@@ -18,35 +31,54 @@  #include <HsBaseConfig.h> --- | Raw, endian-sensitive data+-- | Endianness.+data Endian = LittleEndian -- ^ Little-endian+            | BigEndian    -- ^ Big-endian+            deriving (Typeable, Data, Show, Read,+#if MIN_VERSION_base(4,6,0)+                      Generic,+#endif+                      Eq, Ord, Bounded, Enum, Ix)++-- | Return 'True' if the supplied value is 'LittleEndian'.+isLittleEndian ∷ Endian → Bool+isLittleEndian LittleEndian = True+isLittleEndian BigEndian    = False++-- | Return 'True' if the supplied value is 'BigEndian'.+isBigEndian ∷ Endian → Bool+isBigEndian LittleEndian = False+isBigEndian BigEndian    = True++-- | Raw, endian-sensitive data. class EndianSensitive α where-  -- | Change the endianness of the argument+  -- | Change the endianness of the argument.   swapEndian ∷ α → α --- | Convert from the native format to big-endian-toBigEndian      ∷ EndianSensitive α ⇒ α → α--- | Convert from big-endian to the native format-fromBigEndian    ∷ EndianSensitive α ⇒ α → α--- | Convert from the native format to little-endian+-- | Convert from the native format to little-endian. toLittleEndian   ∷ EndianSensitive α ⇒ α → α--- | Convert from little-endian to the native format+-- | Convert from little-endian to the native format. fromLittleEndian ∷ EndianSensitive α ⇒ α → α+-- | Convert from the native format to big-endian.+toBigEndian      ∷ EndianSensitive α ⇒ α → α+-- | Convert from big-endian to the native format.+fromBigEndian    ∷ EndianSensitive α ⇒ α → α  #ifdef WORDS_BIGENDIAN-toBigEndian      = id toLittleEndian   = swapEndian+toBigEndian      = id #else-toBigEndian      = swapEndian toLittleEndian   = id+toBigEndian      = swapEndian #endif -fromBigEndian    = toBigEndian fromLittleEndian = toLittleEndian+fromBigEndian    = toBigEndian -{-# INLINE toBigEndian #-}-{-# INLINE fromBigEndian #-} {-# INLINE toLittleEndian #-} {-# INLINE fromLittleEndian #-}+{-# INLINE toBigEndian #-}+{-# INLINE fromBigEndian #-}  instance EndianSensitive α ⇒ EndianSensitive [α] where   swapEndian = map swapEndian@@ -214,4 +246,3 @@              . fromIntegral   {-# INLINE swapEndian #-} #endif-