msgpack-types 0.0.4 → 0.1.0
raw patch · 8 files changed
+30/−34 lines, 8 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
- Data.MessagePack.Types: ObjectArray :: ![Object] -> Object
+ Data.MessagePack.Types: ObjectArray :: [Object] -> Object
- Data.MessagePack.Types: ObjectBin :: !ByteString -> Object
+ Data.MessagePack.Types: ObjectBin :: ByteString -> Object
- Data.MessagePack.Types: ObjectBool :: !Bool -> Object
+ Data.MessagePack.Types: ObjectBool :: Bool -> Object
- Data.MessagePack.Types: ObjectDouble :: {-# UNPACK #-} !Double -> Object
+ Data.MessagePack.Types: ObjectDouble :: {-# UNPACK #-}Double -> Object
- Data.MessagePack.Types: ObjectExt :: {-# UNPACK #-} !Word8 -> !ByteString -> Object
+ Data.MessagePack.Types: ObjectExt :: {-# UNPACK #-}Word8 -> ByteString -> Object
- Data.MessagePack.Types: ObjectFloat :: {-# UNPACK #-} !Float -> Object
+ Data.MessagePack.Types: ObjectFloat :: {-# UNPACK #-}Float -> Object
- Data.MessagePack.Types: ObjectInt :: {-# UNPACK #-} !Int64 -> Object
+ Data.MessagePack.Types: ObjectInt :: {-# UNPACK #-}Int64 -> Object
- Data.MessagePack.Types: ObjectMap :: ![(Object, Object)] -> Object
+ Data.MessagePack.Types: ObjectMap :: [(Object, Object)] -> Object
- Data.MessagePack.Types: ObjectStr :: !Text -> Object
+ Data.MessagePack.Types: ObjectStr :: Text -> Object
- Data.MessagePack.Types: ObjectWord :: {-# UNPACK #-} !Word64 -> Object
+ Data.MessagePack.Types: ObjectWord :: {-# UNPACK #-}Word64 -> Object
- Data.MessagePack.Types: fromObject :: (MessagePack a, Applicative m, Monad m, Generic a, GMessagePack (Rep a)) => Object -> m a
+ Data.MessagePack.Types: fromObject :: (MessagePack a, Applicative m, Monad m, MonadFail m, Generic a, GMessagePack (Rep a)) => Object -> m a
Files
- msgpack-types.cabal +3/−2
- src/Data/MessagePack/Types.hs +4/−4
- src/Data/MessagePack/Types/Assoc.hs +1/−0
- src/Data/MessagePack/Types/Class.hs +3/−2
- src/Data/MessagePack/Types/Generic.hs +1/−0
- src/Data/MessagePack/Types/Instances.hs +0/−12
- src/Data/MessagePack/Types/Object.hs +11/−10
- test/Data/MessagePack/Types/ClassSpec.hs +7/−4
msgpack-types.cabal view
@@ -1,5 +1,5 @@ name: msgpack-types-version: 0.0.4+version: 0.1.0 synopsis: A Haskell implementation of MessagePack. homepage: http://msgpack.org/ license: BSD3@@ -35,7 +35,6 @@ Data.MessagePack.Types.Assoc Data.MessagePack.Types.Class Data.MessagePack.Types.Generic- Data.MessagePack.Types.Instances Data.MessagePack.Types.Object build-depends: base < 5@@ -59,6 +58,8 @@ ghc-options: -Wall -fno-warn-unused-imports+ build-tool-depends:+ hspec-discover:hspec-discover build-depends: base < 5 , QuickCheck
src/Data/MessagePack/Types.hs view
@@ -5,7 +5,7 @@ , MessagePack (..) ) where -import Data.MessagePack.Types.Assoc (Assoc (..))-import Data.MessagePack.Types.Class (MessagePack (..))-import Data.MessagePack.Types.Instances ()-import Data.MessagePack.Types.Object (Object (..))+import Data.MessagePack.Types.Assoc (Assoc (..))+import Data.MessagePack.Types.Class (MessagePack (..))+import Data.MessagePack.Types.Generic ()+import Data.MessagePack.Types.Object (Object (..))
src/Data/MessagePack/Types/Assoc.hs view
@@ -1,5 +1,6 @@ {-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE StrictData #-} {-# LANGUAGE Trustworthy #-} --------------------------------------------------------------------
src/Data/MessagePack/Types/Class.hs view
@@ -4,6 +4,7 @@ {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE IncoherentInstances #-} {-# LANGUAGE LambdaCase #-}+{-# LANGUAGE StrictData #-} {-# LANGUAGE Trustworthy #-} --------------------------------------------------------------------@@ -29,8 +30,8 @@ import Control.Arrow ((***)) import qualified Data.ByteString as S import qualified Data.ByteString.Lazy as L-import Data.Hashable (Hashable) import qualified Data.HashMap.Strict as HashMap+import Data.Hashable (Hashable) import Data.Int (Int16, Int32, Int64, Int8) import qualified Data.IntMap.Strict as IntMap import qualified Data.Map as Map@@ -264,7 +265,7 @@ instance (MessagePack a1, MessagePack a2) => MessagePack (a1, a2) where toObject (a1, a2) = ObjectArray [toObject a1, toObject a2] fromObject (ObjectArray [a1, a2]) = (,) <$> fromObject a1 <*> fromObject a2- fromObject _ = fail "invalid encoding for tuple"+ fromObject _ = fail "invalid encoding for tuple" instance (MessagePack a1, MessagePack a2, MessagePack a3) => MessagePack (a1, a2, a3) where toObject (a1, a2, a3) = ObjectArray [toObject a1, toObject a2, toObject a3]
src/Data/MessagePack/Types/Generic.hs view
@@ -7,6 +7,7 @@ {-# LANGUAGE LambdaCase #-} {-# LANGUAGE Safe #-} {-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE StrictData #-} {-# LANGUAGE TypeOperators #-} module Data.MessagePack.Types.Generic () where
− src/Data/MessagePack/Types/Instances.hs
@@ -1,12 +0,0 @@-{-# OPTIONS_GHC -fno-warn-orphans #-}-module Data.MessagePack.Types.Instances () where--import Data.Void (Void)--import Data.MessagePack.Types.Class (MessagePack)-import Data.MessagePack.Types.Generic ()---instance MessagePack a => MessagePack (Maybe a)-instance (MessagePack a, MessagePack b) => MessagePack (Either a b)-instance MessagePack Void
src/Data/MessagePack/Types/Object.hs view
@@ -2,6 +2,7 @@ {-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE Safe #-}+{-# LANGUAGE StrictData #-} module Data.MessagePack.Types.Object ( Object (..) ) where@@ -22,25 +23,25 @@ data Object = ObjectNil -- ^ represents nil- | ObjectBool !Bool+ | ObjectBool Bool -- ^ represents true or false- | ObjectInt {-# UNPACK #-} !Int64+ | ObjectInt {-# UNPACK #-} Int64 -- ^ represents a negative integer- | ObjectWord {-# UNPACK #-} !Word64+ | ObjectWord {-# UNPACK #-} Word64 -- ^ represents a positive integer- | ObjectFloat {-# UNPACK #-} !Float+ | ObjectFloat {-# UNPACK #-} Float -- ^ represents a floating point number- | ObjectDouble {-# UNPACK #-} !Double+ | ObjectDouble {-# UNPACK #-} Double -- ^ represents a floating point number- | ObjectStr !T.Text+ | ObjectStr T.Text -- ^ extending Raw type represents a UTF-8 string- | ObjectBin !S.ByteString+ | ObjectBin S.ByteString -- ^ extending Raw type represents a byte array- | ObjectArray ![Object]+ | ObjectArray [Object] -- ^ represents a sequence of objects- | ObjectMap ![(Object, Object)]+ | ObjectMap [(Object, Object)] -- ^ represents key-value pairs of objects- | ObjectExt {-# UNPACK #-} !Word8 !S.ByteString+ | ObjectExt {-# UNPACK #-} Word8 S.ByteString -- ^ represents a tuple of an integer and a byte array where -- the integer represents type information and the byte array represents data. deriving (Read, Show, Eq, Ord, Typeable, Generic)
test/Data/MessagePack/Types/ClassSpec.hs view
@@ -3,6 +3,7 @@ {-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE StrictData #-} {-# LANGUAGE Trustworthy #-} module Data.MessagePack.Types.ClassSpec where @@ -11,8 +12,8 @@ import Control.Monad (mplus, mzero) import qualified Data.ByteString as BS import qualified Data.ByteString.Lazy as LBS-import Data.Hashable (Hashable) import qualified Data.HashMap.Strict as HashMap+import Data.Hashable (Hashable) import Data.Int (Int16, Int32, Int64, Int8) import qualified Data.IntMap.Strict as IntMap import qualified Data.Map as Map@@ -98,11 +99,13 @@ spec :: Spec spec = do describe "GMessagePack" $ do- it "is a reversible operation" $ property $ \(x :: MyType) ->- fromObject (toObject x) `shouldBe` Just x+ it "is a reversible operation"+ $ withMaxSuccess 10000+ $ property+ $ \(x :: MyType) -> fromObject (toObject x) `shouldBe` Just x it "handles arbitrary values"- $ withMaxSuccess 100000+ $ withMaxSuccess 10000 $ property $ \ob -> fromObject ob `shouldSatisfy` \case Just EnumTyCon -> True