on eed4308 help sign in
46 lines 1.4 kB history raw
1{-# LANGUAGE TemplateHaskell #-}
3module Streamly.Test.Data.Serialize.CompatV0
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 }
26 deriving (Eq, Show)
28instance Arbitrary a => Arbitrary (Rec a) where
29 arbitrary = Rec <$> arbitrary <*> arbitrary <*> arbitrary
31$(Serialize.deriveSerializeWith
32 (Serialize.encodeRecordFields True Serialize.serializeConfig)
33 [d|instance Serialize a => Serialize (Rec a)|])
35data River
36 = Ganga
37 | Yamuna
38 | Godavari
39 deriving (Eq, Show, Read)
41instance Arbitrary River where
42 arbitrary = elements [Ganga, Yamuna, Godavari]
44$(Serialize.deriveSerializeWith
45 (Serialize.encodeConstrNames True Serialize.serializeConfig)
46 [d|instance Serialize River|])