on fb21075 help sign in
115 lines 2.3 kB history raw
1{-# language DataKinds #-}
2{-# language DeriveAnyClass #-}
3{-# language DeriveGeneric #-}
4{-# language DerivingVia #-}
5{-# language DuplicateRecordFields #-}
6{-# language FlexibleInstances #-}
7{-# language MultiParamTypeClasses #-}
8{-# language StandaloneDeriving #-}
9{-# language TypeFamilies #-}
11module Rel8.Schema.Generic.Test
12 ( module Rel8.Schema.Generic.Test
13 )
14where
16-- base
17import GHC.Generics ( Generic )
18import Prelude
20-- higgledy
21import Data.Generic.HKD ( HKD )
23-- rel8
24import Rel8
26-- text
27import Data.Text ( Text )
30data Table f = Table
31 { foo :: Column f Bool
32 , bar :: Column f (Maybe Bool)
33 }
34 deriving stock Generic
35 deriving anyclass Rel8able
38data TablePair f = TablePair
39 { foo :: Default f Bool
40 , bars :: (Column f Text, Column f Text)
41 }
42 deriving stock Generic
43 deriving anyclass Rel8able
46data TableMaybe f = TableMaybe
47 { foo :: Column f [Maybe Bool]
48 , bars :: HMaybe f (TablePair f, TablePair f)
49 }
50 deriving stock Generic
51 deriving anyclass Rel8able
54data TableEither f = TableEither
55 { foo :: Column f Bool
56 , bars :: HEither f (HMaybe f (TablePair f, TablePair f)) (Column f Char)
57 }
58 deriving stock Generic
59 deriving anyclass Rel8able
62data TableThese f = TableThese
63 { foo :: Column f Bool
64 , bars :: HThese f (TableMaybe f) (TableEither f)
65 }
66 deriving stock Generic
67 deriving anyclass Rel8able
70data TableList f = TableList
71 { foo :: Column f Bool
72 , bars :: HList f (TableThese f)
73 }
74 deriving stock Generic
75 deriving anyclass Rel8able
78data TableNonEmpty f = TableNonEmpty
79 { foo :: Column f Bool
80 , bars :: HNonEmpty f (TableList f, Default f Char)
81 }
82 deriving stock Generic
83 deriving anyclass Rel8able
86data S3Object = S3Object
87 { bucketName :: Text
88 , objectKey :: Text
89 } deriving stock Generic
92deriving via HKDT S3Object
93 instance x ~ HKD S3Object Expr => ToExprs x S3Object
96data HKDTest f = HKDTest
97 { s3Object :: Lift f S3Object
98 }
99 deriving stock Generic
100 deriving anyclass Rel8able
103data NonRecord f = NonRecord
104 (Column f Bool)
105 (Column f Char)
106 (Column f Char)
107 (Column f Char)
108 (Column f Char)
109 (Column f Char)
110 (Column f Char)
111 (Column f Char)
112 (Column f Char)
113 (Column f Char)
114 deriving stock Generic
115 deriving anyclass Rel8able