packages feed

bytes 0.7 → 0.8

raw patch · 5 files changed

+57/−1 lines, 5 filesdep +containersdep ~binaryPVP ok

version bump matches the API change (PVP)

Dependencies added: containers

Dependency ranges changed: binary

API changes (from Hackage documentation)

+ Data.Bytes.Serial: instance (Serial k, Serial v) => Serial (Map k v)
+ Data.Bytes.Serial: instance Serial IntSet
+ Data.Bytes.Serial: instance Serial a => Serial (Seq a)
+ Data.Bytes.Serial: instance Serial a => Serial (Set a)
+ Data.Bytes.Serial: instance Serial k => Serial1 (Map k)
+ Data.Bytes.Serial: instance Serial v => Serial (IntMap v)
+ Data.Bytes.Serial: instance Serial1 IntMap
+ Data.Bytes.Serial: instance Serial1 Seq
+ Data.Bytes.Serial: instance Serial1 Set
+ Data.Bytes.Serial: instance Serial2 Map

Files

CHANGELOG.markdown view
@@ -1,3 +1,7 @@+0.8+-----+* Trustworthiness+ 0.4 --- * Added a missing () instance
bytes.cabal view
@@ -1,6 +1,6 @@ name:          bytes category:      Data, Serialization-version:       0.7+version:       0.8 license:       BSD3 cabal-version: >= 1.8 license-file:  LICENSE@@ -45,6 +45,7 @@     binary                    >= 0.5      && < 0.8,     bytestring                >= 0.9      && < 0.11,     cereal                    >= 0.3.5    && < 0.4,+    containers                >= 0.5      && < 1,     ghc-prim,     mtl                       >= 2.0      && < 2.2,     text                      >= 0.2      && < 1,
src/Data/Bytes/Get.hs view
@@ -2,6 +2,7 @@ {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE DefaultSignatures #-}+{-# LANGUAGE Trustworthy #-} -------------------------------------------------------------------- -- | -- Copyright :  (c) Edward Kmett 2013
src/Data/Bytes/Put.hs view
@@ -5,6 +5,7 @@ {-# LANGUAGE TypeOperators #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE UndecidableInstances #-}+{-# LANGUAGE Trustworthy #-} -------------------------------------------------------------------- -- | -- Copyright :  (c) Edward Kmett 2013
src/Data/Bytes/Serial.hs view
@@ -34,12 +34,18 @@   ) where  import Control.Monad+import qualified Data.Foldable as F import Data.Bytes.Get import Data.Bytes.Put import Data.ByteString.Internal import Data.ByteString.Lazy as Lazy import Data.ByteString as Strict import Data.Int+import qualified Data.IntMap as IMap+import qualified Data.IntSet as ISet+import qualified Data.Map as Map+import qualified Data.Sequence as Seq+import qualified Data.Set as Set import Data.Text as SText import Data.Text.Encoding as SText import Data.Text.Lazy as LText@@ -167,6 +173,26 @@   serialize = absurd   deserialize = fail "I looked into the void." +instance Serial ISet.IntSet where+  serialize = serialize . ISet.toAscList+  deserialize = ISet.fromDistinctAscList `liftM` deserialize++instance Serial a => Serial (Seq.Seq a) where+  serialize = serializeWith serialize+  deserialize = deserializeWith deserialize++instance Serial a => Serial (Set.Set a) where+  serialize = serializeWith serialize+  deserialize = deserializeWith deserialize++instance Serial v => Serial (IMap.IntMap v) where+  serialize = serializeWith serialize+  deserialize = deserializeWith deserialize++instance (Serial k, Serial v) => Serial (Map.Map k v) where+  serialize = serializeWith serialize+  deserialize = deserializeWith deserialize+ ------------------------------------------------------------------------------ -- Generic Serialization ------------------------------------------------------------------------------@@ -253,6 +279,24 @@   serializeWith = serializeWith2 serialize   deserializeWith = deserializeWith2 deserialize +instance Serial1 Seq.Seq where+  serializeWith pv = serializeWith pv . F.toList+  deserializeWith gv = Seq.fromList `liftM` deserializeWith gv++instance Serial1 Set.Set where+  serializeWith pv = serializeWith pv . Set.toAscList+  deserializeWith gv = Set.fromDistinctAscList `liftM` deserializeWith gv++instance Serial1 IMap.IntMap where+  serializeWith pv = serializeWith (serializeWith2 serialize pv)+                   . IMap.toAscList+  deserializeWith gv = IMap.fromDistinctAscList+               `liftM` deserializeWith (deserializeWith2 deserialize gv)++instance Serial k => Serial1 (Map.Map k) where+  serializeWith = serializeWith2 serialize+  deserializeWith = deserializeWith2 deserialize+ serialize1 :: (MonadPut m, Serial1 f, Serial a) => f a -> m () serialize1 = serializeWith serialize {-# INLINE serialize1 #-}@@ -347,3 +391,8 @@ instance (Serial a, Serial b, Serial c) => Serial2 ((,,,,) a b c) where   serializeWith2 f g (a, b, c, d, e) = serialize a >> serialize b >> serialize c >> f d >> g e   deserializeWith2 m n = liftM5 (,,,,) deserialize deserialize deserialize m n++instance Serial2 Map.Map where+  serializeWith2 pk pv = serializeWith (serializeWith2 pk pv) . Map.toAscList+  deserializeWith2 gk gv = Map.fromDistinctAscList+                   `liftM` deserializeWith (deserializeWith2 gk gv)