on eed4308 help sign in
48 lines 1.4 kB history raw
1{-# LANGUAGE TemplateHaskell #-}
3module Streamly.Test.Data.Serialize.CompatV1
4 ( Rec(..)
5 , River(..)
6 ) where
8--------------------------------------------------------------------------------
9-- Imports
10--------------------------------------------------------------------------------
12import Test.QuickCheck (Arbitrary, arbitrary, elements)
13import Streamly.Internal.Data.Serialize (Serialize)
14import qualified Streamly.Internal.Data.Serialize as Serialize
16--------------------------------------------------------------------------------
17-- Types
18--------------------------------------------------------------------------------
20data Rec a =
21 Rec
22 { initialField :: Int
23 , otherField :: a
24 , theLastField :: Maybe String
25 , aNewField :: Maybe Char
26 }
27 deriving (Eq, Show)
29instance Arbitrary a => Arbitrary (Rec a) where
30 arbitrary = Rec <$> arbitrary <*> arbitrary <*> arbitrary <*> arbitrary
32$(Serialize.deriveSerializeWith
33 (Serialize.encodeRecordFields True Serialize.serializeConfig)
34 [d|instance Serialize a => Serialize (Rec a)|])
36data River
37 = Yamuna
38 | Krishna
39 | Godavari
40 | Ganga
41 deriving (Eq, Show, Read)
43instance Arbitrary River where
44 arbitrary = elements [Ganga, Yamuna, Godavari]
46$(Serialize.deriveSerializeWith
47 (Serialize.encodeConstrNames True Serialize.serializeConfig)
48 [d|instance Serialize River|])