messagepack 0.3.0 → 0.4.0
raw patch · 4 files changed
+17/−24 lines, 4 filesdep −attoparsecdep −textPVP ok
version bump matches the API change (PVP)
Dependencies removed: attoparsec, text
API changes (from Hackage documentation)
- Data.MessagePack: ObjectString :: Text -> Object
+ Data.MessagePack: ObjectString :: ByteString -> Object
Files
- CHANGELOG +4/−0
- Data/MessagePack.hs +7/−10
- messagepack.cabal +1/−4
- tests/Main.hs +5/−10
CHANGELOG view
@@ -1,3 +1,7 @@+2015-05-07 Mike Pye <mike@pusher.com>++ * Remove coercion of msgpack String type to haskell Text+ 2014-12-03 Sebastian Witte <woozletoff@gmail.com> * Add support for extension types
Data/MessagePack.hs view
@@ -21,8 +21,6 @@ import Data.Int import Data.MessagePack.Spec import Data.Serialize-import Data.Text (Text)-import Data.Text.Encoding import qualified Data.ByteString as BS import qualified Data.Map as M @@ -31,7 +29,7 @@ | ObjectBool Bool | ObjectFloat Float | ObjectDouble Double- | ObjectString Text+ | ObjectString BS.ByteString | ObjectBinary BS.ByteString | ObjectArray [Object] | ObjectMap (M.Map Object Object )@@ -61,10 +59,9 @@ put (ObjectDouble d) = putWord8 float64 >> putFloat64be d put (ObjectString t) =- header >> putByteString bytes+ header >> putByteString t where- bytes = encodeUtf8 t- size = BS.length bytes+ size = BS.length t header | size <= 31 = putWord8 $ fixstr .|. fromIntegral size | size < 0x100 = putWord8 str8 >> putWord8 (fromIntegral size)@@ -141,13 +138,13 @@ | k == int64 = ObjectInt <$> fromIntegral <$> (get :: Get Int64) | k .&. fixstrMask == fixstr = let n = fromIntegral $ k .&. complement fixstrMask- in ObjectString <$> decodeUtf8 <$> getByteString n+ in ObjectString <$> getByteString n | k == str8 = do n <- fromIntegral <$> getWord8- ObjectString <$> decodeUtf8 <$> getByteString n+ ObjectString <$> getByteString n | k == str16 = do n <- fromIntegral <$> getWord16be- ObjectString <$> decodeUtf8 <$> getByteString n+ ObjectString <$> getByteString n | k == str32 = do n <- fromIntegral <$> getWord32be- ObjectString <$> decodeUtf8 <$> getByteString n+ ObjectString <$> getByteString n | k .&. fixarrayMask == fixarray = let n = fromIntegral $ k .&. complement fixarrayMask in ObjectArray <$> replicateM n get
messagepack.cabal view
@@ -1,5 +1,5 @@ name : messagepack-version : 0.3.0+version : 0.4.0 synopsis : Serialize instance for Message Pack Object description : Serialize instance for Message Pack Object homepage : https://github.com/rodrigosetti/messagepack@@ -26,11 +26,9 @@ , Data.MessagePack.Spec default-language : Haskell2010 build-depends : base == 4.*- , attoparsec == 0.12.* , bytestring == 0.10.* , cereal == 0.4.* , containers == 0.5.*- , text == 1.* test-suite messagepack-tests type : exitcode-stdio-1.0@@ -45,6 +43,5 @@ , test-framework == 0.8.* , test-framework-quickcheck2 == 0.3.* , test-framework-th == 0.2.*- , text == 1.* , messagepack
tests/Main.hs view
@@ -9,7 +9,6 @@ import Test.QuickCheck import qualified Data.ByteString as BS import qualified Data.Map as M-import qualified Data.Text as T main :: IO () main = $(defaultMainGenerator)@@ -23,12 +22,14 @@ , ObjectString <$> arbitrary , ObjectBinary <$> arbitrary , ObjectArray <$> resize (3 * n `quot` 4) arbitrary- , ObjectMap <$> resize (3 * n `quot` 4) arbitrary ]+ , ObjectMap <$> resize (3 * n `quot` 4) arbitrary+ , ObjectExt <$> arbitrary <*> arbitrary ] shrink (ObjectString s) = map ObjectString $ shrink s shrink (ObjectBinary b) = map ObjectBinary $ shrink b- shrink (ObjectArray a) = (map ObjectArray $ shrink a) ++ a- shrink (ObjectMap m) = (map ObjectMap $ shrink m) ++ M.keys m ++ M.elems m+ shrink (ObjectArray a) = map ObjectArray (shrink a) ++ a+ shrink (ObjectMap m) = map ObjectMap (shrink m) ++ M.keys m ++ M.elems m+ shrink (ObjectExt t s) = map (ObjectExt t) $ shrink s shrink _ = [] instance (Ord k, Arbitrary k, Arbitrary v) => Arbitrary (M.Map k v) where@@ -42,12 +43,6 @@ arbitrary = BS.pack <$> arbitrary shrink = map BS.pack . shrink . BS.unpack--instance Arbitrary T.Text where-- arbitrary = T.pack <$> arbitrary-- shrink = map T.pack . shrink . T.unpack prop_encodeDecodeIsIdentity :: Object -> Bool prop_encodeDecodeIsIdentity o = either error (== o) $ decode $ encode o