packages feed

data-msgpack 0.0.7 → 0.0.8

raw patch · 2 files changed

+27/−1 lines, 2 filesdep +vectorPVP ok

version bump matches the API change (PVP)

Dependencies added: vector

API changes (from Hackage documentation)

+ Data.MessagePack.Class: instance (Data.MessagePack.Class.MessagePack a, Data.Vector.Unboxed.Base.Unbox a) => Data.MessagePack.Class.MessagePack (Data.Vector.Unboxed.Base.Vector a)
+ Data.MessagePack.Class: instance (Data.MessagePack.Class.MessagePack a, Foreign.Storable.Storable a) => Data.MessagePack.Class.MessagePack (Data.Vector.Storable.Vector a)
+ Data.MessagePack.Class: instance Data.MessagePack.Class.MessagePack a => Data.MessagePack.Class.MessagePack (Data.Vector.Vector a)

Files

data-msgpack.cabal view
@@ -1,5 +1,5 @@ name:                 data-msgpack-version:              0.0.7+version:              0.0.8 synopsis:             A Haskell implementation of MessagePack homepage:             http://msgpack.org/ license:              BSD3@@ -18,6 +18,10 @@   since the original author is unreachable. This fork incorporates a number of   bugfixes and is actively being developed. +extra-source-files:+  bench/Data/MessagePack/IntBench.hs+  bench/Data/MessagePackBench.hs+ source-repository head   type:             git   location:         https://github.com/TokTok/hs-msgpack.git@@ -50,6 +54,7 @@     , hashable     , text     , unordered-containers+    , vector     , void  executable msgpack-parser@@ -84,6 +89,7 @@     , hspec     , text     , unordered-containers+    , vector     , void  benchmark benchmark
src/Data/MessagePack/Class.hs view
@@ -36,6 +36,9 @@ import qualified Data.Map                as Map import qualified Data.Text               as T import qualified Data.Text.Lazy          as LT+import qualified Data.Vector             as V+import qualified Data.Vector.Storable    as VS+import qualified Data.Vector.Unboxed     as VU import           Data.Word               (Word, Word16, Word32, Word64, Word8) import           GHC.Generics @@ -188,6 +191,23 @@     ObjectArray xs -> mapM fromObject xs     _              -> fail "invalid encoding for list" +instance MessagePack a => MessagePack (V.Vector a) where+  toObject = ObjectArray . map toObject . V.toList+  fromObject = \case+    ObjectArray o -> V.fromList <$> mapM fromObject o+    _             -> fail "invalid encoding for Vector"++instance (MessagePack a, VU.Unbox a) => MessagePack (VU.Vector a) where+  toObject = ObjectArray . map toObject . VU.toList+  fromObject = \case+    ObjectArray o -> VU.fromList <$> mapM fromObject o+    _             -> fail "invalid encoding for Unboxed Vector"++instance (MessagePack a, VS.Storable a) => MessagePack (VS.Vector a) where+  toObject = ObjectArray . map toObject . VS.toList+  fromObject = \case+    ObjectArray o -> VS.fromList <$> mapM fromObject o+    _             -> fail "invalid encoding for Storable Vector"  -- Instances for map-like data structures.