packages feed

fixed-vector-cborg 1.0.0.2 → 2.1.0.0

raw patch · 5 files changed

+56/−142 lines, 5 filesdep −fixed-vector-cborgdep −tastydep −tasty-quickcheckdep ~basedep ~fixed-vectorsetup-changedPVP ok

version bump matches the API change (PVP)

Dependencies removed: fixed-vector-cborg, tasty, tasty-quickcheck

Dependency ranges changed: base, fixed-vector

API changes (from Hackage documentation)

- Data.Vector.Fixed.Instances.CBOR: instance (Data.Vector.Fixed.Cont.Arity n, Data.Primitive.Types.Prim a, Codec.Serialise.Class.Serialise a) => Codec.Serialise.Class.Serialise (Data.Vector.Fixed.Primitive.Vec n a)
- Data.Vector.Fixed.Instances.CBOR: instance (Data.Vector.Fixed.Cont.Arity n, Foreign.Storable.Storable a, Codec.Serialise.Class.Serialise a) => Codec.Serialise.Class.Serialise (Data.Vector.Fixed.Storable.Vec n a)
- Data.Vector.Fixed.Instances.CBOR: instance (Data.Vector.Fixed.Unboxed.Unbox n a, Codec.Serialise.Class.Serialise a) => Codec.Serialise.Class.Serialise (Data.Vector.Fixed.Unboxed.Vec n a)
+ Data.Vector.Fixed.Instances.CBOR: instance (Data.Vector.Fixed.Cont.Arity n, Codec.Serialise.Class.Serialise a) => Codec.Serialise.Class.Serialise (Data.Vector.Fixed.Strict.Vec n a)
+ Data.Vector.Fixed.Instances.CBOR: instance (Data.Vector.Fixed.Cont.Arity n, Codec.Serialise.Class.Serialise a, Data.Primitive.Types.Prim a) => Codec.Serialise.Class.Serialise (Data.Vector.Fixed.Primitive.Vec n a)
+ Data.Vector.Fixed.Instances.CBOR: instance (Data.Vector.Fixed.Cont.Arity n, Codec.Serialise.Class.Serialise a, Data.Vector.Fixed.Unboxed.Unbox n a) => Codec.Serialise.Class.Serialise (Data.Vector.Fixed.Unboxed.Vec n a)
+ Data.Vector.Fixed.Instances.CBOR: instance (Data.Vector.Fixed.Cont.Arity n, Codec.Serialise.Class.Serialise a, Foreign.Storable.Storable a) => Codec.Serialise.Class.Serialise (Data.Vector.Fixed.Storable.Vec n a)
+ Data.Vector.Fixed.Instances.CBOR: instance (Data.Vector.Fixed.Cont.ArityPeano n, Codec.Serialise.Class.Serialise a) => Codec.Serialise.Class.Serialise (Data.Vector.Fixed.VecPeano n a)
+ Data.Vector.Fixed.Instances.CBOR: instance (Data.Vector.Fixed.Cont.Vector v a, Codec.Serialise.Class.Serialise a) => Codec.Serialise.Class.Serialise (Data.Vector.Fixed.ViaFixed v a)
+ Data.Vector.Fixed.Instances.CBOR: instance (Data.Vector.Fixed.Mono.Prod a v, Codec.Serialise.Class.Serialise a) => Codec.Serialise.Class.Serialise (Data.Vector.Fixed.Mono.ViaFixed a v)
- Data.Vector.Fixed.Instances.CBOR: decodeFixedVector :: forall v s a. (Vector v a, Serialise a) => Decoder s (v a)
+ Data.Vector.Fixed.Instances.CBOR: decodeFixedVector :: forall v s a. (Prod a v, Serialise a) => Decoder s v
- Data.Vector.Fixed.Instances.CBOR: encodeFixedVector :: (Vector v a, Serialise a) => v a -> Encoding
+ Data.Vector.Fixed.Instances.CBOR: encodeFixedVector :: (Prod a v, Serialise a) => v -> Encoding

Files

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/CBOR.hs view
@@ -1,5 +1,9 @@+{-# LANGUAGE DerivingVia          #-} {-# LANGUAGE FlexibleContexts     #-}+{-# LANGUAGE MagicHash            #-} {-# LANGUAGE ScopedTypeVariables  #-}+{-# LANGUAGE StandaloneDeriving   #-}+{-# LANGUAGE TypeApplications     #-} {-# LANGUAGE TypeFamilies         #-} {-# LANGUAGE UndecidableInstances #-} {-# OPTIONS_GHC -fno-warn-orphans #-}@@ -10,42 +14,41 @@ import           Codec.Serialise import           Codec.CBOR.Encoding           (Encoding,encodeListLen,encodeNull) import           Codec.CBOR.Decoding           (Decoder,decodeListLenOf,decodeNull)-import           Data.Monoid                   ((<>))-import           Data.Typeable                 (Proxy(..))+import           GHC.Exts                      (proxy#) -import           Data.Vector.Fixed             (Arity)+import           Data.Vector.Fixed             (Arity,ArityPeano,Vector,ViaFixed) import qualified Data.Vector.Fixed           as F-import           Data.Vector.Fixed.Cont        (arity,Dim)-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----instance (Arity n, Serialise a) => Serialise (B.Vec n a) where-  encode = encodeFixedVector-  decode = decodeFixedVector+import           Data.Vector.Fixed.Cont        (peanoToInt,Dim)+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 qualified Data.Vector.Fixed.Mono      as FM+import Data.Coerce -instance (Arity n, P.Prim a, Serialise a) => Serialise (P.Vec n a) where+instance (Vector v a, Serialise a) => Serialise (ViaFixed v a) where   encode = encodeFixedVector   decode = decodeFixedVector+  {-# INLINE encode #-}+  {-# INLINE decode #-} -instance (Arity n, S.Storable a, Serialise a) => Serialise (S.Vec n a) where+instance (FM.Prod a v, Serialise a) => Serialise (FM.ViaFixed a v) where   encode = encodeFixedVector   decode = decodeFixedVector+  {-# INLINE encode #-}+  {-# INLINE decode #-} -instance (U.Unbox n a, Serialise a) => Serialise (U.Vec n a) where-  encode = encodeFixedVector-  decode = decodeFixedVector+deriving via ViaFixed (FB.Vec n) a instance (Arity n, Serialise a)                => Serialise (FB.Vec n a)+deriving via ViaFixed (FF.Vec n) a instance (Arity n, Serialise a)                => Serialise (FF.Vec n a)+deriving via ViaFixed (FP.Vec n) a instance (Arity n, Serialise a, FP.Prim a)     => Serialise (FP.Vec n a)+deriving via ViaFixed (FS.Vec n) a instance (Arity n, Serialise a, FS.Storable a) => Serialise (FS.Vec n a)+deriving via ViaFixed (FU.Vec n) a instance (Arity n, Serialise a, FU.Unbox n a)  => Serialise (FU.Vec n a) -instance (Arity n, Serialise a) => Serialise (F.VecList n a) where-  encode = encodeFixedVector-  decode = decodeFixedVector+deriving via ViaFixed (F.VecList  n) a instance (Arity n,      Serialise a) => Serialise (F.VecList  n a)+deriving via ViaFixed (F.VecPeano n) a instance (ArityPeano n, Serialise a) => Serialise (F.VecPeano n a) -instance (Serialise a) => Serialise (F.Only a) where-  encode = encodeFixedVector-  decode = decodeFixedVector+deriving via ViaFixed F.Only a instance (Serialise a) => Serialise (F.Only a)  instance Serialise (F.Empty a) where   encode = const encodeNull@@ -53,15 +56,16 @@  -- | Encode vector with statically known size as CBOR list. There's no --   type tag-encodeFixedVector :: (F.Vector v a, Serialise a) => v a -> Encoding+encodeFixedVector :: (FM.Prod a v, Serialise a) => v -> Encoding {-# INLINE encodeFixedVector #-}-encodeFixedVector v = encodeListLen (fromIntegral $ F.length v)-                   <> F.foldMap encode v+encodeFixedVector v+  = encodeListLen (fromIntegral $ FM.length v)+ <> FM.foldMap encode (FM.ViaFixed v)  -- | Decode vector with statically known size as CBOR list. There's no --   type tag-decodeFixedVector :: forall v s a. (F.Vector v a, Serialise a) => Decoder s (v a)+decodeFixedVector :: forall v s a. (FM.Prod a v, Serialise a) => Decoder s v {-# INLINE decodeFixedVector #-} decodeFixedVector = do-  decodeListLenOf (fromIntegral $ arity (Proxy :: Proxy (Dim v)))-  F.replicateM decode+  decodeListLenOf (fromIntegral $ peanoToInt (proxy# @(Dim v)))+  coerce $ FM.replicateM @(FM.ViaFixed a v) decode
− Setup.hs
@@ -1,2 +0,0 @@-import Distribution.Simple-main = defaultMain
fixed-vector-cborg.cabal view
@@ -1,5 +1,5 @@ Name:           fixed-vector-cborg-Version:        1.0.0.2+Version:        2.1.0.0 Synopsis:       Binary instances for fixed-vector Description:   CBOR serialization instances for fixed-vector's types. Generic@@ -17,12 +17,12 @@   ChangeLog.md  tested-with:-    GHC ==7.10.3-     || ==8.0.2-     || ==8.2.2-     || ==8.4.4-     || ==8.6.5-     || ==8.8.1+    GHC ==9.4.7+     || ==9.6.7+     || ==9.8.4+     || ==9.10.2+     || ==9.12.2+     || ==9.14.1  source-repository head   type:     git@@ -31,23 +31,9 @@ Library   Ghc-options:          -Wall   Default-Language:     Haskell2010-  Build-Depends: base         >=4.8 && <5-               , fixed-vector >=1.0+  Build-Depends: base         >=4.16 && <5+               , fixed-vector >=2.1                , cborg                , serialise   Exposed-modules:     Data.Vector.Fixed.Instances.CBOR--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-cborg,-    serialise,-    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 Codec.Serialise-import Data.Typeable-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.CBOR ()---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 :: (Serialise a, Arbitrary a, Eq a) => T a -> a -> Bool-p_serialize _ a = a == (deserialise . serialise) 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---