fixed-vector-cereal 1.0.0.2 → 2.0.0.0
raw patch · 4 files changed
+40/−130 lines, 4 filesdep −fixed-vector-cerealdep −tastydep −tasty-quickcheckdep ~basedep ~fixed-vectorPVP ok
version bump matches the API change (PVP)
Dependencies removed: fixed-vector-cereal, tasty, tasty-quickcheck
Dependency ranges changed: base, fixed-vector
API changes (from Hackage documentation)
- Data.Vector.Fixed.Instances.Cereal: instance (Data.Vector.Fixed.Cont.Arity n, Data.Primitive.Types.Prim a, Data.Serialize.Serialize a) => Data.Serialize.Serialize (Data.Vector.Fixed.Primitive.Vec n a)
- Data.Vector.Fixed.Instances.Cereal: instance (Data.Vector.Fixed.Cont.Arity n, Foreign.Storable.Storable a, Data.Serialize.Serialize a) => Data.Serialize.Serialize (Data.Vector.Fixed.Storable.Vec n a)
- Data.Vector.Fixed.Instances.Cereal: instance (Data.Vector.Fixed.Unboxed.Unbox n a, Data.Serialize.Serialize a) => Data.Serialize.Serialize (Data.Vector.Fixed.Unboxed.Vec n a)
+ Data.Vector.Fixed.Instances.Cereal: instance (Data.Vector.Fixed.Cont.Arity n, Data.Serialize.Serialize a) => Data.Serialize.Serialize (Data.Vector.Fixed.Strict.Vec n a)
+ Data.Vector.Fixed.Instances.Cereal: instance (Data.Vector.Fixed.Cont.Arity n, Data.Serialize.Serialize a, Data.Primitive.Types.Prim a) => Data.Serialize.Serialize (Data.Vector.Fixed.Primitive.Vec n a)
+ Data.Vector.Fixed.Instances.Cereal: instance (Data.Vector.Fixed.Cont.Arity n, Data.Serialize.Serialize a, Data.Vector.Fixed.Unboxed.Unbox n a) => Data.Serialize.Serialize (Data.Vector.Fixed.Unboxed.Vec n a)
+ Data.Vector.Fixed.Instances.Cereal: instance (Data.Vector.Fixed.Cont.Arity n, Data.Serialize.Serialize a, Foreign.Storable.Storable a) => Data.Serialize.Serialize (Data.Vector.Fixed.Storable.Vec n a)
+ Data.Vector.Fixed.Instances.Cereal: instance (Data.Vector.Fixed.Cont.ArityPeano n, Data.Serialize.Serialize a) => Data.Serialize.Serialize (Data.Vector.Fixed.VecPeano n a)
+ Data.Vector.Fixed.Instances.Cereal: instance (Data.Vector.Fixed.Cont.Vector v a, Data.Serialize.Serialize a) => Data.Serialize.Serialize (Data.Vector.Fixed.ViaFixed v a)
Files
- ChangeLog.md +12/−12
- Data/Vector/Fixed/Instances/Cereal.hs +18/−20
- fixed-vector-cereal.cabal +10/−24
- test/QC.hs +0/−74
ChangeLog.md view
@@ -1,15 +1,15 @@-Changes in 1.0.0.2-- * GHC 8.6+ compatibility for tests as well--Changes in 1.0.0.1-- * GHC 8.6 compatibility--Changes in 1.0.0.0+1.0.0.2+-------+* GHC 8.6+ compatibility for tests as well - * Compatibility with fixed-vector-1.0+1.0.0.1+-------+* GHC 8.6 compatibility -Changes in 0.6.0.0+1.0.0.0+-------+* Compatibility with fixed-vector-1.0 - * Initial release+0.6.0.0+-------+* Initial release
Data/Vector/Fixed/Instances/Cereal.hs view
@@ -1,4 +1,6 @@+{-# LANGUAGE DerivingVia #-} {-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE StandaloneDeriving #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE UndecidableInstances #-} {-# OPTIONS_GHC -fno-warn-orphans #-}@@ -6,34 +8,30 @@ -- vector module Data.Vector.Fixed.Instances.Cereal where -import Data.Vector.Fixed (Arity)+import Data.Vector.Fixed (Arity,ArityPeano,ViaFixed(..),Vector) import qualified Data.Vector.Fixed as F-import qualified Data.Vector.Fixed.Boxed as B-import qualified Data.Vector.Fixed.Unboxed as U-import qualified Data.Vector.Fixed.Primitive as P-import qualified Data.Vector.Fixed.Storable as S+import qualified Data.Vector.Fixed.Boxed as FB+import qualified Data.Vector.Fixed.Strict as FF+import qualified Data.Vector.Fixed.Unboxed as FU+import qualified Data.Vector.Fixed.Primitive as FP+import qualified Data.Vector.Fixed.Storable as FS import Data.Serialize (Serialize(..)) -instance (Arity n, Serialize a) => Serialize (B.Vec n a) where- put = F.mapM_ put- get = F.replicateM get--instance (Arity n, P.Prim a, Serialize a) => Serialize (P.Vec n a) where- put = F.mapM_ put- get = F.replicateM get--instance (Arity n, S.Storable a, Serialize a) => Serialize (S.Vec n a) where+instance (Vector v a, Serialize a) => Serialize (ViaFixed v a) where put = F.mapM_ put get = F.replicateM get+ {-# INLINE put #-}+ {-# INLINE get #-} -instance (U.Unbox n a, Serialize a) => Serialize (U.Vec n a) where- put = F.mapM_ put- get = F.replicateM get+deriving via ViaFixed (FB.Vec n) a instance (Arity n, Serialize a) => Serialize (FB.Vec n a)+deriving via ViaFixed (FF.Vec n) a instance (Arity n, Serialize a) => Serialize (FF.Vec n a)+deriving via ViaFixed (FP.Vec n) a instance (Arity n, Serialize a, FP.Prim a) => Serialize (FP.Vec n a)+deriving via ViaFixed (FS.Vec n) a instance (Arity n, Serialize a, FS.Storable a) => Serialize (FS.Vec n a)+deriving via ViaFixed (FU.Vec n) a instance (Arity n, Serialize a, FU.Unbox n a) => Serialize (FU.Vec n a) -instance (Arity n, Serialize a) => Serialize (F.VecList n a) where- put = F.mapM_ put- get = F.replicateM get+deriving via ViaFixed (F.VecList n) a instance (Arity n, Serialize a) => Serialize (F.VecList n a)+deriving via ViaFixed (F.VecPeano n) a instance (ArityPeano n, Serialize a) => Serialize (F.VecPeano n a) instance (Serialize a) => Serialize (F.Only a) where put (F.Only a) = put a
fixed-vector-cereal.cabal view
@@ -1,5 +1,5 @@ Name: fixed-vector-cereal-Version: 1.0.0.2+Version: 2.0.0.0 Synopsis: Cereal instances for fixed-vector Description: This package contains Cereal instances for data types defined in@@ -17,12 +17,13 @@ ChangeLog.md tested-with:- GHC ==7.10.3- || ==8.0.2- || ==8.2.2- || ==8.4.4- || ==8.6.5- || ==8.8.1+ GHC ==8.10.7+ || ==9.0.1+ || ==9.2.8+ || ==9.4.7+ || ==9.6.6+ || ==9.8.2+ || ==9.10.1 source-repository head type: git@@ -31,23 +32,8 @@ Library Ghc-options: -Wall Default-Language: Haskell2010- Build-Depends: base >=4.8 && <5- , fixed-vector >=1.0+ Build-Depends: base >=4.14 && <5+ , fixed-vector >=2.0 , cereal Exposed-modules: Data.Vector.Fixed.Instances.Cereal--Test-Suite test- Ghc-options: -Wall- Default-Language: Haskell2010- Type: exitcode-stdio-1.0- Hs-source-dirs: test- Main-is: QC.hs- Build-Depends:- base >=3 && <5,- fixed-vector,- fixed-vector-cereal,- cereal,- tasty,- tasty-quickcheck-
− test/QC.hs
@@ -1,74 +0,0 @@-{-# LANGUAGE DataKinds #-}-{-# LANGUAGE FlexibleContexts #-}-{-# LANGUAGE ScopedTypeVariables #-}-{-# LANGUAGE TypeFamilies #-}-{-# LANGUAGE UndecidableInstances #-}-{-# OPTIONS_GHC -fno-warn-orphans #-}-import Test.Tasty-import Test.Tasty.QuickCheck as QC--import Data.Typeable-import Data.Serialize-import qualified Data.Vector.Fixed as F-import qualified Data.Vector.Fixed.Unboxed as U-import qualified Data.Vector.Fixed.Boxed as B-import qualified Data.Vector.Fixed.Storable as S-import qualified Data.Vector.Fixed.Primitive as P-import Data.Vector.Fixed.Instances.Cereal ()---tests :: TestTree-tests = testGroup "cereal"- [ testTagged p_serialize (T :: T (F.Only Int))- , testTagged p_serialize (T :: T (F.VecList 2 Int))- , testTagged p_serialize (T :: T (F.VecList 3 Int))- , testTagged p_serialize (T :: T (F.VecList 4 Int))- --- , testTagged p_serialize (T :: T (U.Vec 2 Int))- , testTagged p_serialize (T :: T (U.Vec 3 Int))- , testTagged p_serialize (T :: T (U.Vec 4 Int))- --- , testTagged p_serialize (T :: T (B.Vec 2 Int))- , testTagged p_serialize (T :: T (B.Vec 3 Int))- , testTagged p_serialize (T :: T (B.Vec 4 Int))- --- , testTagged p_serialize (T :: T (S.Vec 2 Int))- , testTagged p_serialize (T :: T (S.Vec 3 Int))- , testTagged p_serialize (T :: T (S.Vec 4 Int))- --- , testTagged p_serialize (T :: T (P.Vec 2 Int))- , testTagged p_serialize (T :: T (P.Vec 3 Int))- , testTagged p_serialize (T :: T (P.Vec 4 Int))- ]--p_serialize :: (Serialize a, Arbitrary a, Eq a) => T a -> a -> Bool-p_serialize _ a = Right a == (decode . encode) a--data T a = T--testTagged :: forall a b. (Testable b, Typeable a) => (T a -> b) -> T a -> TestTree-testTagged prop t- = testProperty (show $ typeOf (undefined :: a)) (prop t)--main :: IO ()-main = defaultMain tests-------------------------------------------------------------------instance Arbitrary a => Arbitrary (F.Only a) where- arbitrary = F.replicateM arbitrary-instance Arbitrary a => Arbitrary (F.Empty a) where- arbitrary = F.replicateM arbitrary--instance (F.Arity n, Arbitrary a) => Arbitrary (F.VecList n a) where- arbitrary = F.replicateM arbitrary-instance (U.Unbox n a, Arbitrary a) => Arbitrary (U.Vec n a) where- arbitrary = F.replicateM arbitrary-instance (F.Arity n, Arbitrary a) => Arbitrary (B.Vec n a) where- arbitrary = F.replicateM arbitrary-instance (F.Arity n, S.Storable a, Arbitrary a) => Arbitrary (S.Vec n a) where- arbitrary = F.replicateM arbitrary-instance (F.Arity n, P.Prim a, Arbitrary a) => Arbitrary (P.Vec n a) where- arbitrary = F.replicateM arbitrary---