{-# OPTIONS_HADDOCK hide #-}
{-# LANGUAGE BangPatterns #-}
{-# LANGUAGE FlexibleInstances #-}
module Database.MSSQLServer.Query.ResultSet ( ResultSet (..)
, extractTableStreams
, Row (..)
) where
import Control.Applicative((<$>),(<*>))
import Database.Tds.Message
import Database.MSSQLServer.Query.Only
class ResultSet a where
fromTokenStreams :: [TokenStream] -> a
instance ResultSet () where
fromTokenStreams = f . extractTableStreams
where
f [] = ()
f _ = error "fromTokenStreams: List length must be 0"
instance (Row a) => ResultSet [a] where
fromTokenStreams = f . extractTableStreams
where
f [(m1,r1)] = b1
where
!b1 = fromListOfRawBytes m1 <$> r1
f _ = error "fromTokenStreams: List length must be 1"
instance (Row a, Row b) => ResultSet ([a],[b]) where
fromTokenStreams = f . extractTableStreams
where
f [(m1,r1),(m2,r2)] = (b1,b2)
where
!b1 = fromListOfRawBytes m1 <$> r1
!b2 = fromListOfRawBytes m2 <$> r2
f _ = error "fromTokenStreams: List length must be 2"
instance (Row a, Row b, Row c) => ResultSet ([a],[b],[c]) where
fromTokenStreams = f . extractTableStreams
where
f [(m1,r1),(m2,r2),(m3,r3)] = (b1,b2,b3)
where
!b1 = fromListOfRawBytes m1 <$> r1
!b2 = fromListOfRawBytes m2 <$> r2
!b3 = fromListOfRawBytes m3 <$> r3
f _ = error "fromTokenStreams: List length must be 3"
instance (Row a, Row b, Row c, Row d) => ResultSet ([a],[b],[c],[d]) where
fromTokenStreams = f . extractTableStreams
where
f [(m1,r1),(m2,r2),(m3,r3),(m4,r4)] = (b1,b2,b3,b4)
where
!b1 = fromListOfRawBytes m1 <$> r1
!b2 = fromListOfRawBytes m2 <$> r2
!b3 = fromListOfRawBytes m3 <$> r3
!b4 = fromListOfRawBytes m4 <$> r4
f _ = error "fromTokenStreams: List length must be 4"
instance (Row a, Row b, Row c, Row d, Row e) => ResultSet ([a],[b],[c],[d],[e]) where
fromTokenStreams = f . extractTableStreams
where
f [(m1,r1),(m2,r2),(m3,r3),(m4,r4),(m5,r5)] = (b1,b2,b3,b4,b5)
where
!b1 = fromListOfRawBytes m1 <$> r1
!b2 = fromListOfRawBytes m2 <$> r2
!b3 = fromListOfRawBytes m3 <$> r3
!b4 = fromListOfRawBytes m4 <$> r4
!b5 = fromListOfRawBytes m5 <$> r5
f _ = error "fromTokenStreams: List length must be 5"
extractTableStreams :: [TokenStream] -> [([MetaColumnData],[[RawBytes]])]
extractTableStreams = map extract . span' . ( filter $ \x -> isTSColMetaData x || isTSRow x )
where
span' :: [TokenStream] -> [(TokenStream,[TokenStream])]
span' [] = []
span' (cmd@TSColMetaData{}:xs) =
let
(rs,xs') = span isTSRow xs
in (cmd,rs):span' xs'
span' _ = error "extractTableStrams: TSColMetaData is necesarry"
isTSColMetaData :: TokenStream -> Bool
isTSColMetaData (TSColMetaData{}) = True
isTSColMetaData _ = False
isTSRow :: TokenStream -> Bool
isTSRow (TSRow{}) = True
isTSRow _ = False
extract :: (TokenStream,[TokenStream]) -> ([MetaColumnData],[[RawBytes]])
extract = \(tsCmd,tsRss) ->
let (TSColMetaData (maybeCmd)) = tsCmd
cds = case (\(ColMetaData x) -> x) <$> maybeCmd of
Nothing -> error "extractTableStrams: ColMetaData is necessary"
Just cds' -> cds'
datas = (\(TSRow row) -> rawBytes <$> row) <$> tsRss
in (cds, datas)
where
rawBytes :: RowColumnData -> RawBytes
rawBytes (RCDOrdinal dt) = dt
rawBytes (RCDLarge _ _ dt) = dt
mcdTypeInfo :: MetaColumnData -> TypeInfo
mcdTypeInfo (MetaColumnData _ _ ti _ _) = ti
class Row a where
fromListOfRawBytes :: [MetaColumnData] -> [RawBytes] -> a
instance Row () where
fromListOfRawBytes [] [] = ()
fromListOfRawBytes _ _ = error "fromListOfRawBytes: List length must be 0"
instance (Data a) => Row (Only a) where
fromListOfRawBytes [m1] [b1] = Only d1
where
!d1 = fromRawBytes (mcdTypeInfo m1) b1
fromListOfRawBytes _ _ = error "fromListOfRawBytes: List length must be 1"
instance (Data a, Data b) => Row (a,b) where
fromListOfRawBytes [m1,m2] [b1,b2] = (d1,d2)
where
!d1 = fromRawBytes (mcdTypeInfo m1) b1
!d2 = fromRawBytes (mcdTypeInfo m2) b2
fromListOfRawBytes _ _ = error "fromListOfRawBytes: List length must be 2"
instance (Data a, Data b, Data c) => Row (a,b,c) where
fromListOfRawBytes [m1,m2,m3] [b1,b2,b3] = (d1,d2,d3)
where
!d1 = fromRawBytes (mcdTypeInfo m1) b1
!d2 = fromRawBytes (mcdTypeInfo m2) b2
!d3 = fromRawBytes (mcdTypeInfo m3) b3
fromListOfRawBytes _ _ = error "fromListOfRawBytes: List length must be 3"
instance (Data a, Data b, Data c, Data d) => Row (a,b,c,d) where
fromListOfRawBytes [m1,m2,m3,m4] [b1,b2,b3,b4] = (d1,d2,d3,d4)
where
!d1 = fromRawBytes (mcdTypeInfo m1) b1
!d2 = fromRawBytes (mcdTypeInfo m2) b2
!d3 = fromRawBytes (mcdTypeInfo m3) b3
!d4 = fromRawBytes (mcdTypeInfo m4) b4
fromListOfRawBytes _ _ = error "fromListOfRawBytes: List length must be 4"
instance (Data a, Data b, Data c, Data d, Data e) => Row (a,b,c,d,e) where
fromListOfRawBytes [m1,m2,m3,m4,m5] [b1,b2,b3,b4,b5] = (d1,d2,d3,d4,d5)
where
!d1 = fromRawBytes (mcdTypeInfo m1) b1
!d2 = fromRawBytes (mcdTypeInfo m2) b2
!d3 = fromRawBytes (mcdTypeInfo m3) b3
!d4 = fromRawBytes (mcdTypeInfo m4) b4
!d5 = fromRawBytes (mcdTypeInfo m5) b5
fromListOfRawBytes _ _ = error "fromListOfRawBytes: List length must be 5"
instance (Data a, Data b, Data c, Data d, Data e, Data f) => Row (a,b,c,d,e,f) where
fromListOfRawBytes [m1,m2,m3,m4,m5,m6] [b1,b2,b3,b4,b5,b6] = (d1,d2,d3,d4,d5,d6)
where
!d1 = fromRawBytes (mcdTypeInfo m1) b1
!d2 = fromRawBytes (mcdTypeInfo m2) b2
!d3 = fromRawBytes (mcdTypeInfo m3) b3
!d4 = fromRawBytes (mcdTypeInfo m4) b4
!d5 = fromRawBytes (mcdTypeInfo m5) b5
!d6 = fromRawBytes (mcdTypeInfo m6) b6
fromListOfRawBytes _ _ = error "fromListOfRawBytes: List length must be 6"
instance (Data a, Data b, Data c, Data d, Data e, Data f, Data g) => Row (a,b,c,d,e,f,g) where
fromListOfRawBytes [m1,m2,m3,m4,m5,m6,m7] [b1,b2,b3,b4,b5,b6,b7] = (d1,d2,d3,d4,d5,d6,d7)
where
!d1 = fromRawBytes (mcdTypeInfo m1) b1
!d2 = fromRawBytes (mcdTypeInfo m2) b2
!d3 = fromRawBytes (mcdTypeInfo m3) b3
!d4 = fromRawBytes (mcdTypeInfo m4) b4
!d5 = fromRawBytes (mcdTypeInfo m5) b5
!d6 = fromRawBytes (mcdTypeInfo m6) b6
!d7 = fromRawBytes (mcdTypeInfo m7) b7
fromListOfRawBytes _ _ = error "fromListOfRawBytes: List length must be 7"
instance (Data a, Data b, Data c, Data d, Data e, Data f, Data g, Data h) => Row (a,b,c,d,e,f,g,h) where
fromListOfRawBytes [m1,m2,m3,m4,m5,m6,m7,m8] [b1,b2,b3,b4,b5,b6,b7,b8] = (d1,d2,d3,d4,d5,d6,d7,d8)
where
!d1 = fromRawBytes (mcdTypeInfo m1) b1
!d2 = fromRawBytes (mcdTypeInfo m2) b2
!d3 = fromRawBytes (mcdTypeInfo m3) b3
!d4 = fromRawBytes (mcdTypeInfo m4) b4
!d5 = fromRawBytes (mcdTypeInfo m5) b5
!d6 = fromRawBytes (mcdTypeInfo m6) b6
!d7 = fromRawBytes (mcdTypeInfo m7) b7
!d8 = fromRawBytes (mcdTypeInfo m8) b8
fromListOfRawBytes _ _ = error "fromListOfRawBytes: List length must be 8"
instance (Data a, Data b, Data c, Data d, Data e, Data f, Data g, Data h, Data i) => Row (a,b,c,d,e,f,g,h,i) where
fromListOfRawBytes [m1,m2,m3,m4,m5,m6,m7,m8,m9] [b1,b2,b3,b4,b5,b6,b7,b8,b9] = (d1,d2,d3,d4,d5,d6,d7,d8,d9)
where
!d1 = fromRawBytes (mcdTypeInfo m1) b1
!d2 = fromRawBytes (mcdTypeInfo m2) b2
!d3 = fromRawBytes (mcdTypeInfo m3) b3
!d4 = fromRawBytes (mcdTypeInfo m4) b4
!d5 = fromRawBytes (mcdTypeInfo m5) b5
!d6 = fromRawBytes (mcdTypeInfo m6) b6
!d7 = fromRawBytes (mcdTypeInfo m7) b7
!d8 = fromRawBytes (mcdTypeInfo m8) b8
!d9 = fromRawBytes (mcdTypeInfo m9) b9
fromListOfRawBytes _ _ = error "fromListOfRawBytes: List length must be 9"
instance (Data a, Data b, Data c, Data d, Data e, Data f, Data g, Data h, Data i, Data j) => Row (a,b,c,d,e,f,g,h,i,j) where
fromListOfRawBytes [m1,m2,m3,m4,m5,m6,m7,m8,m9,m10] [b1,b2,b3,b4,b5,b6,b7,b8,b9,b10] = (d1,d2,d3,d4,d5,d6,d7,d8,d9,d10)
where
!d1 = fromRawBytes (mcdTypeInfo m1) b1
!d2 = fromRawBytes (mcdTypeInfo m2) b2
!d3 = fromRawBytes (mcdTypeInfo m3) b3
!d4 = fromRawBytes (mcdTypeInfo m4) b4
!d5 = fromRawBytes (mcdTypeInfo m5) b5
!d6 = fromRawBytes (mcdTypeInfo m6) b6
!d7 = fromRawBytes (mcdTypeInfo m7) b7
!d8 = fromRawBytes (mcdTypeInfo m8) b8
!d9 = fromRawBytes (mcdTypeInfo m9) b9
!d10 = fromRawBytes (mcdTypeInfo m10) b10
fromListOfRawBytes _ _ = error "fromListOfRawBytes: List length must be 10"
instance (Data a, Data b, Data c, Data d, Data e, Data f, Data g, Data h, Data i, Data j, Data k) => Row (a,b,c,d,e,f,g,h,i,j,k) where
fromListOfRawBytes [m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11] [b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11]
= (d1,d2,d3,d4,d5,d6,d7,d8,d9,d10,d11)
where
!d1 = fromRawBytes (mcdTypeInfo m1) b1
!d2 = fromRawBytes (mcdTypeInfo m2) b2
!d3 = fromRawBytes (mcdTypeInfo m3) b3
!d4 = fromRawBytes (mcdTypeInfo m4) b4
!d5 = fromRawBytes (mcdTypeInfo m5) b5
!d6 = fromRawBytes (mcdTypeInfo m6) b6
!d7 = fromRawBytes (mcdTypeInfo m7) b7
!d8 = fromRawBytes (mcdTypeInfo m8) b8
!d9 = fromRawBytes (mcdTypeInfo m9) b9
!d10 = fromRawBytes (mcdTypeInfo m10) b10
!d11 = fromRawBytes (mcdTypeInfo m11) b11
fromListOfRawBytes _ _ = error "fromListOfRawBytes: List length must be 11"
instance (Data a, Data b, Data c, Data d, Data e, Data f, Data g, Data h, Data i, Data j, Data k, Data l) => Row (a,b,c,d,e,f,g,h,i,j,k,l) where
fromListOfRawBytes [m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12] [b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12]
= (d1,d2,d3,d4,d5,d6,d7,d8,d9,d10,d11,d12)
where
!d1 = fromRawBytes (mcdTypeInfo m1) b1
!d2 = fromRawBytes (mcdTypeInfo m2) b2
!d3 = fromRawBytes (mcdTypeInfo m3) b3
!d4 = fromRawBytes (mcdTypeInfo m4) b4
!d5 = fromRawBytes (mcdTypeInfo m5) b5
!d6 = fromRawBytes (mcdTypeInfo m6) b6
!d7 = fromRawBytes (mcdTypeInfo m7) b7
!d8 = fromRawBytes (mcdTypeInfo m8) b8
!d9 = fromRawBytes (mcdTypeInfo m9) b9
!d10 = fromRawBytes (mcdTypeInfo m10) b10
!d11 = fromRawBytes (mcdTypeInfo m11) b11
!d12 = fromRawBytes (mcdTypeInfo m12) b12
fromListOfRawBytes _ _ = error "fromListOfRawBytes: List length must be 12"
instance (Data a, Data b, Data c, Data d, Data e, Data f, Data g, Data h, Data i, Data j, Data k, Data l, Data m) => Row (a,b,c,d,e,f,g,h,i,j,k,l,m) where
fromListOfRawBytes [m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13] [b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13]
= (d1,d2,d3,d4,d5,d6,d7,d8,d9,d10,d11,d12,d13)
where
!d1 = fromRawBytes (mcdTypeInfo m1) b1
!d2 = fromRawBytes (mcdTypeInfo m2) b2
!d3 = fromRawBytes (mcdTypeInfo m3) b3
!d4 = fromRawBytes (mcdTypeInfo m4) b4
!d5 = fromRawBytes (mcdTypeInfo m5) b5
!d6 = fromRawBytes (mcdTypeInfo m6) b6
!d7 = fromRawBytes (mcdTypeInfo m7) b7
!d8 = fromRawBytes (mcdTypeInfo m8) b8
!d9 = fromRawBytes (mcdTypeInfo m9) b9
!d10 = fromRawBytes (mcdTypeInfo m10) b10
!d11 = fromRawBytes (mcdTypeInfo m11) b11
!d12 = fromRawBytes (mcdTypeInfo m12) b12
!d13 = fromRawBytes (mcdTypeInfo m13) b13
fromListOfRawBytes _ _ = error "fromListOfRawBytes: List length must be 13"
instance (Data a, Data b, Data c, Data d, Data e, Data f, Data g, Data h, Data i, Data j, Data k, Data l, Data m, Data n) => Row (a,b,c,d,e,f,g,h,i,j,k,l,m,n) where
fromListOfRawBytes [m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14] [b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14]
= (d1,d2,d3,d4,d5,d6,d7,d8,d9,d10,d11,d12,d13,d14)
where
!d1 = fromRawBytes (mcdTypeInfo m1) b1
!d2 = fromRawBytes (mcdTypeInfo m2) b2
!d3 = fromRawBytes (mcdTypeInfo m3) b3
!d4 = fromRawBytes (mcdTypeInfo m4) b4
!d5 = fromRawBytes (mcdTypeInfo m5) b5
!d6 = fromRawBytes (mcdTypeInfo m6) b6
!d7 = fromRawBytes (mcdTypeInfo m7) b7
!d8 = fromRawBytes (mcdTypeInfo m8) b8
!d9 = fromRawBytes (mcdTypeInfo m9) b9
!d10 = fromRawBytes (mcdTypeInfo m10) b10
!d11 = fromRawBytes (mcdTypeInfo m11) b11
!d12 = fromRawBytes (mcdTypeInfo m12) b12
!d13 = fromRawBytes (mcdTypeInfo m13) b13
!d14 = fromRawBytes (mcdTypeInfo m14) b14
fromListOfRawBytes _ _ = error "fromListOfRawBytes: List length must be 14"
instance (Data a, Data b, Data c, Data d, Data e, Data f, Data g, Data h, Data i, Data j, Data k, Data l, Data m, Data n, Data o) =>
Row (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o) where
fromListOfRawBytes [m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15] [b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15]
= (d1,d2,d3,d4,d5,d6,d7,d8,d9,d10,d11,d12,d13,d14,d15)
where
!d1 = fromRawBytes (mcdTypeInfo m1) b1
!d2 = fromRawBytes (mcdTypeInfo m2) b2
!d3 = fromRawBytes (mcdTypeInfo m3) b3
!d4 = fromRawBytes (mcdTypeInfo m4) b4
!d5 = fromRawBytes (mcdTypeInfo m5) b5
!d6 = fromRawBytes (mcdTypeInfo m6) b6
!d7 = fromRawBytes (mcdTypeInfo m7) b7
!d8 = fromRawBytes (mcdTypeInfo m8) b8
!d9 = fromRawBytes (mcdTypeInfo m9) b9
!d10 = fromRawBytes (mcdTypeInfo m10) b10
!d11 = fromRawBytes (mcdTypeInfo m11) b11
!d12 = fromRawBytes (mcdTypeInfo m12) b12
!d13 = fromRawBytes (mcdTypeInfo m13) b13
!d14 = fromRawBytes (mcdTypeInfo m14) b14
!d15 = fromRawBytes (mcdTypeInfo m15) b15
fromListOfRawBytes _ _ = error "fromListOfRawBytes: List length must be 15"
instance (Data a, Data b, Data c, Data d, Data e, Data f, Data g, Data h, Data i, Data j, Data k, Data l, Data m, Data n, Data o, Data p) =>
Row (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p) where
fromListOfRawBytes [m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15,m16] [b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16]
= (d1,d2,d3,d4,d5,d6,d7,d8,d9,d10,d11,d12,d13,d14,d15,d16)
where
!d1 = fromRawBytes (mcdTypeInfo m1) b1
!d2 = fromRawBytes (mcdTypeInfo m2) b2
!d3 = fromRawBytes (mcdTypeInfo m3) b3
!d4 = fromRawBytes (mcdTypeInfo m4) b4
!d5 = fromRawBytes (mcdTypeInfo m5) b5
!d6 = fromRawBytes (mcdTypeInfo m6) b6
!d7 = fromRawBytes (mcdTypeInfo m7) b7
!d8 = fromRawBytes (mcdTypeInfo m8) b8
!d9 = fromRawBytes (mcdTypeInfo m9) b9
!d10 = fromRawBytes (mcdTypeInfo m10) b10
!d11 = fromRawBytes (mcdTypeInfo m11) b11
!d12 = fromRawBytes (mcdTypeInfo m12) b12
!d13 = fromRawBytes (mcdTypeInfo m13) b13
!d14 = fromRawBytes (mcdTypeInfo m14) b14
!d15 = fromRawBytes (mcdTypeInfo m15) b15
!d16 = fromRawBytes (mcdTypeInfo m16) b16
fromListOfRawBytes _ _ = error "fromListOfRawBytes: List length must be 16"
instance (Data a, Data b, Data c, Data d, Data e, Data f, Data g, Data h, Data i, Data j, Data k, Data l, Data m, Data n, Data o, Data p, Data q) =>
Row (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q) where
fromListOfRawBytes [m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15,m16,m17] [b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17]
= (d1,d2,d3,d4,d5,d6,d7,d8,d9,d10,d11,d12,d13,d14,d15,d16,d17)
where
!d1 = fromRawBytes (mcdTypeInfo m1) b1
!d2 = fromRawBytes (mcdTypeInfo m2) b2
!d3 = fromRawBytes (mcdTypeInfo m3) b3
!d4 = fromRawBytes (mcdTypeInfo m4) b4
!d5 = fromRawBytes (mcdTypeInfo m5) b5
!d6 = fromRawBytes (mcdTypeInfo m6) b6
!d7 = fromRawBytes (mcdTypeInfo m7) b7
!d8 = fromRawBytes (mcdTypeInfo m8) b8
!d9 = fromRawBytes (mcdTypeInfo m9) b9
!d10 = fromRawBytes (mcdTypeInfo m10) b10
!d11 = fromRawBytes (mcdTypeInfo m11) b11
!d12 = fromRawBytes (mcdTypeInfo m12) b12
!d13 = fromRawBytes (mcdTypeInfo m13) b13
!d14 = fromRawBytes (mcdTypeInfo m14) b14
!d15 = fromRawBytes (mcdTypeInfo m15) b15
!d16 = fromRawBytes (mcdTypeInfo m16) b16
!d17 = fromRawBytes (mcdTypeInfo m17) b17
fromListOfRawBytes _ _ = error "fromListOfRawBytes: List length must be 17"
instance (Data a, Data b, Data c, Data d, Data e, Data f, Data g, Data h, Data i, Data j, Data k, Data l, Data m, Data n, Data o, Data p, Data q, Data r) =>
Row (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r) where
fromListOfRawBytes [m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15,m16,m17,m18] [b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17,b18]
= (d1,d2,d3,d4,d5,d6,d7,d8,d9,d10,d11,d12,d13,d14,d15,d16,d17,d18)
where
!d1 = fromRawBytes (mcdTypeInfo m1) b1
!d2 = fromRawBytes (mcdTypeInfo m2) b2
!d3 = fromRawBytes (mcdTypeInfo m3) b3
!d4 = fromRawBytes (mcdTypeInfo m4) b4
!d5 = fromRawBytes (mcdTypeInfo m5) b5
!d6 = fromRawBytes (mcdTypeInfo m6) b6
!d7 = fromRawBytes (mcdTypeInfo m7) b7
!d8 = fromRawBytes (mcdTypeInfo m8) b8
!d9 = fromRawBytes (mcdTypeInfo m9) b9
!d10 = fromRawBytes (mcdTypeInfo m10) b10
!d11 = fromRawBytes (mcdTypeInfo m11) b11
!d12 = fromRawBytes (mcdTypeInfo m12) b12
!d13 = fromRawBytes (mcdTypeInfo m13) b13
!d14 = fromRawBytes (mcdTypeInfo m14) b14
!d15 = fromRawBytes (mcdTypeInfo m15) b15
!d16 = fromRawBytes (mcdTypeInfo m16) b16
!d17 = fromRawBytes (mcdTypeInfo m17) b17
!d18 = fromRawBytes (mcdTypeInfo m18) b18
fromListOfRawBytes _ _ = error "fromListOfRawBytes: List length must be 18"
instance (Data a, Data b, Data c, Data d, Data e, Data f, Data g, Data h, Data i, Data j, Data k, Data l, Data m, Data n, Data o, Data p, Data q, Data r, Data s) =>
Row (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s) where
fromListOfRawBytes [m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15,m16,m17,m18,m19] [b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17,b18,b19]
= (d1,d2,d3,d4,d5,d6,d7,d8,d9,d10,d11,d12,d13,d14,d15,d16,d17,d18,d19)
where
!d1 = fromRawBytes (mcdTypeInfo m1) b1
!d2 = fromRawBytes (mcdTypeInfo m2) b2
!d3 = fromRawBytes (mcdTypeInfo m3) b3
!d4 = fromRawBytes (mcdTypeInfo m4) b4
!d5 = fromRawBytes (mcdTypeInfo m5) b5
!d6 = fromRawBytes (mcdTypeInfo m6) b6
!d7 = fromRawBytes (mcdTypeInfo m7) b7
!d8 = fromRawBytes (mcdTypeInfo m8) b8
!d9 = fromRawBytes (mcdTypeInfo m9) b9
!d10 = fromRawBytes (mcdTypeInfo m10) b10
!d11 = fromRawBytes (mcdTypeInfo m11) b11
!d12 = fromRawBytes (mcdTypeInfo m12) b12
!d13 = fromRawBytes (mcdTypeInfo m13) b13
!d14 = fromRawBytes (mcdTypeInfo m14) b14
!d15 = fromRawBytes (mcdTypeInfo m15) b15
!d16 = fromRawBytes (mcdTypeInfo m16) b16
!d17 = fromRawBytes (mcdTypeInfo m17) b17
!d18 = fromRawBytes (mcdTypeInfo m18) b18
!d19 = fromRawBytes (mcdTypeInfo m19) b19
fromListOfRawBytes _ _ = error "fromListOfRawBytes: List length must be 19"
instance (Data a, Data b, Data c, Data d, Data e, Data f, Data g, Data h, Data i, Data j, Data k, Data l, Data m, Data n, Data o, Data p, Data q, Data r, Data s
, Data t) =>
Row (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t) where
fromListOfRawBytes [m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15,m16,m17,m18,m19,m20] [b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17,b18,b19,b20]
= (d1,d2,d3,d4,d5,d6,d7,d8,d9,d10,d11,d12,d13,d14,d15,d16,d17,d18,d19,d20)
where
!d1 = fromRawBytes (mcdTypeInfo m1) b1
!d2 = fromRawBytes (mcdTypeInfo m2) b2
!d3 = fromRawBytes (mcdTypeInfo m3) b3
!d4 = fromRawBytes (mcdTypeInfo m4) b4
!d5 = fromRawBytes (mcdTypeInfo m5) b5
!d6 = fromRawBytes (mcdTypeInfo m6) b6
!d7 = fromRawBytes (mcdTypeInfo m7) b7
!d8 = fromRawBytes (mcdTypeInfo m8) b8
!d9 = fromRawBytes (mcdTypeInfo m9) b9
!d10 = fromRawBytes (mcdTypeInfo m10) b10
!d11 = fromRawBytes (mcdTypeInfo m11) b11
!d12 = fromRawBytes (mcdTypeInfo m12) b12
!d13 = fromRawBytes (mcdTypeInfo m13) b13
!d14 = fromRawBytes (mcdTypeInfo m14) b14
!d15 = fromRawBytes (mcdTypeInfo m15) b15
!d16 = fromRawBytes (mcdTypeInfo m16) b16
!d17 = fromRawBytes (mcdTypeInfo m17) b17
!d18 = fromRawBytes (mcdTypeInfo m18) b18
!d19 = fromRawBytes (mcdTypeInfo m19) b19
!d20 = fromRawBytes (mcdTypeInfo m20) b20
fromListOfRawBytes _ _ = error "fromListOfRawBytes: List length must be 20"
instance (Data a, Data b, Data c, Data d, Data e, Data f, Data g, Data h, Data i, Data j, Data k, Data l, Data m, Data n, Data o, Data p, Data q, Data r, Data s
, Data t, Data u) =>
Row (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u) where
fromListOfRawBytes [m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15,m16,m17,m18,m19,m20,m21] [b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17,b18,b19,b20,b21]
= (d1,d2,d3,d4,d5,d6,d7,d8,d9,d10,d11,d12,d13,d14,d15,d16,d17,d18,d19,d20,d21)
where
!d1 = fromRawBytes (mcdTypeInfo m1) b1
!d2 = fromRawBytes (mcdTypeInfo m2) b2
!d3 = fromRawBytes (mcdTypeInfo m3) b3
!d4 = fromRawBytes (mcdTypeInfo m4) b4
!d5 = fromRawBytes (mcdTypeInfo m5) b5
!d6 = fromRawBytes (mcdTypeInfo m6) b6
!d7 = fromRawBytes (mcdTypeInfo m7) b7
!d8 = fromRawBytes (mcdTypeInfo m8) b8
!d9 = fromRawBytes (mcdTypeInfo m9) b9
!d10 = fromRawBytes (mcdTypeInfo m10) b10
!d11 = fromRawBytes (mcdTypeInfo m11) b11
!d12 = fromRawBytes (mcdTypeInfo m12) b12
!d13 = fromRawBytes (mcdTypeInfo m13) b13
!d14 = fromRawBytes (mcdTypeInfo m14) b14
!d15 = fromRawBytes (mcdTypeInfo m15) b15
!d16 = fromRawBytes (mcdTypeInfo m16) b16
!d17 = fromRawBytes (mcdTypeInfo m17) b17
!d18 = fromRawBytes (mcdTypeInfo m18) b18
!d19 = fromRawBytes (mcdTypeInfo m19) b19
!d20 = fromRawBytes (mcdTypeInfo m20) b20
!d21 = fromRawBytes (mcdTypeInfo m21) b21
fromListOfRawBytes _ _ = error "fromListOfRawBytes: List length must be 21"
instance (Data a, Data b, Data c, Data d, Data e, Data f, Data g, Data h, Data i, Data j, Data k, Data l, Data m, Data n, Data o, Data p, Data q, Data r, Data s
, Data t, Data u, Data v) =>
Row (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v) where
fromListOfRawBytes [m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15,m16,m17,m18,m19,m20,m21,m22] [b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17,b18,b19,b20,b21,b22]
= (d1,d2,d3,d4,d5,d6,d7,d8,d9,d10,d11,d12,d13,d14,d15,d16,d17,d18,d19,d20,d21,d22)
where
!d1 = fromRawBytes (mcdTypeInfo m1) b1
!d2 = fromRawBytes (mcdTypeInfo m2) b2
!d3 = fromRawBytes (mcdTypeInfo m3) b3
!d4 = fromRawBytes (mcdTypeInfo m4) b4
!d5 = fromRawBytes (mcdTypeInfo m5) b5
!d6 = fromRawBytes (mcdTypeInfo m6) b6
!d7 = fromRawBytes (mcdTypeInfo m7) b7
!d8 = fromRawBytes (mcdTypeInfo m8) b8
!d9 = fromRawBytes (mcdTypeInfo m9) b9
!d10 = fromRawBytes (mcdTypeInfo m10) b10
!d11 = fromRawBytes (mcdTypeInfo m11) b11
!d12 = fromRawBytes (mcdTypeInfo m12) b12
!d13 = fromRawBytes (mcdTypeInfo m13) b13
!d14 = fromRawBytes (mcdTypeInfo m14) b14
!d15 = fromRawBytes (mcdTypeInfo m15) b15
!d16 = fromRawBytes (mcdTypeInfo m16) b16
!d17 = fromRawBytes (mcdTypeInfo m17) b17
!d18 = fromRawBytes (mcdTypeInfo m18) b18
!d19 = fromRawBytes (mcdTypeInfo m19) b19
!d20 = fromRawBytes (mcdTypeInfo m20) b20
!d21 = fromRawBytes (mcdTypeInfo m21) b21
!d22 = fromRawBytes (mcdTypeInfo m22) b22
fromListOfRawBytes _ _ = error "fromListOfRawBytes: List length must be 22"
instance (Data a, Data b, Data c, Data d, Data e, Data f, Data g, Data h, Data i, Data j, Data k, Data l, Data m, Data n, Data o, Data p, Data q, Data r, Data s
, Data t, Data u, Data v, Data w) =>
Row (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w) where
fromListOfRawBytes [m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15,m16,m17,m18,m19,m20,m21,m22,m23] [b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17,b18,b19,b20,b21,b22,b23]
= (d1,d2,d3,d4,d5,d6,d7,d8,d9,d10,d11,d12,d13,d14,d15,d16,d17,d18,d19,d20,d21,d22,d23)
where
!d1 = fromRawBytes (mcdTypeInfo m1) b1
!d2 = fromRawBytes (mcdTypeInfo m2) b2
!d3 = fromRawBytes (mcdTypeInfo m3) b3
!d4 = fromRawBytes (mcdTypeInfo m4) b4
!d5 = fromRawBytes (mcdTypeInfo m5) b5
!d6 = fromRawBytes (mcdTypeInfo m6) b6
!d7 = fromRawBytes (mcdTypeInfo m7) b7
!d8 = fromRawBytes (mcdTypeInfo m8) b8
!d9 = fromRawBytes (mcdTypeInfo m9) b9
!d10 = fromRawBytes (mcdTypeInfo m10) b10
!d11 = fromRawBytes (mcdTypeInfo m11) b11
!d12 = fromRawBytes (mcdTypeInfo m12) b12
!d13 = fromRawBytes (mcdTypeInfo m13) b13
!d14 = fromRawBytes (mcdTypeInfo m14) b14
!d15 = fromRawBytes (mcdTypeInfo m15) b15
!d16 = fromRawBytes (mcdTypeInfo m16) b16
!d17 = fromRawBytes (mcdTypeInfo m17) b17
!d18 = fromRawBytes (mcdTypeInfo m18) b18
!d19 = fromRawBytes (mcdTypeInfo m19) b19
!d20 = fromRawBytes (mcdTypeInfo m20) b20
!d21 = fromRawBytes (mcdTypeInfo m21) b21
!d22 = fromRawBytes (mcdTypeInfo m22) b22
!d23 = fromRawBytes (mcdTypeInfo m23) b23
fromListOfRawBytes _ _ = error "fromListOfRawBytes: List length must be 23"
instance (Data a, Data b, Data c, Data d, Data e, Data f, Data g, Data h, Data i, Data j, Data k, Data l, Data m, Data n, Data o, Data p, Data q, Data r, Data s
, Data t, Data u, Data v, Data w, Data x) =>
Row (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x) where
fromListOfRawBytes [m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15,m16,m17,m18,m19,m20,m21,m22,m23,m24] [b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17,b18,b19,b20,b21,b22,b23,b24]
= (d1,d2,d3,d4,d5,d6,d7,d8,d9,d10,d11,d12,d13,d14,d15,d16,d17,d18,d19,d20,d21,d22,d23,d24)
where
!d1 = fromRawBytes (mcdTypeInfo m1) b1
!d2 = fromRawBytes (mcdTypeInfo m2) b2
!d3 = fromRawBytes (mcdTypeInfo m3) b3
!d4 = fromRawBytes (mcdTypeInfo m4) b4
!d5 = fromRawBytes (mcdTypeInfo m5) b5
!d6 = fromRawBytes (mcdTypeInfo m6) b6
!d7 = fromRawBytes (mcdTypeInfo m7) b7
!d8 = fromRawBytes (mcdTypeInfo m8) b8
!d9 = fromRawBytes (mcdTypeInfo m9) b9
!d10 = fromRawBytes (mcdTypeInfo m10) b10
!d11 = fromRawBytes (mcdTypeInfo m11) b11
!d12 = fromRawBytes (mcdTypeInfo m12) b12
!d13 = fromRawBytes (mcdTypeInfo m13) b13
!d14 = fromRawBytes (mcdTypeInfo m14) b14
!d15 = fromRawBytes (mcdTypeInfo m15) b15
!d16 = fromRawBytes (mcdTypeInfo m16) b16
!d17 = fromRawBytes (mcdTypeInfo m17) b17
!d18 = fromRawBytes (mcdTypeInfo m18) b18
!d19 = fromRawBytes (mcdTypeInfo m19) b19
!d20 = fromRawBytes (mcdTypeInfo m20) b20
!d21 = fromRawBytes (mcdTypeInfo m21) b21
!d22 = fromRawBytes (mcdTypeInfo m22) b22
!d23 = fromRawBytes (mcdTypeInfo m23) b23
!d24 = fromRawBytes (mcdTypeInfo m24) b24
fromListOfRawBytes _ _ = error "fromListOfRawBytes: List length must be 24"
instance (Data a, Data b, Data c, Data d, Data e, Data f, Data g, Data h, Data i, Data j, Data k, Data l, Data m, Data n, Data o, Data p, Data q, Data r, Data s
, Data t, Data u, Data v, Data w, Data x, Data y) =>
Row (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y) where
fromListOfRawBytes [m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15,m16,m17,m18,m19,m20,m21,m22,m23,m24,m25] [b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17,b18,b19,b20,b21,b22,b23,b24,b25]
= (d1,d2,d3,d4,d5,d6,d7,d8,d9,d10,d11,d12,d13,d14,d15,d16,d17,d18,d19,d20,d21,d22,d23,d24,d25)
where
!d1 = fromRawBytes (mcdTypeInfo m1) b1
!d2 = fromRawBytes (mcdTypeInfo m2) b2
!d3 = fromRawBytes (mcdTypeInfo m3) b3
!d4 = fromRawBytes (mcdTypeInfo m4) b4
!d5 = fromRawBytes (mcdTypeInfo m5) b5
!d6 = fromRawBytes (mcdTypeInfo m6) b6
!d7 = fromRawBytes (mcdTypeInfo m7) b7
!d8 = fromRawBytes (mcdTypeInfo m8) b8
!d9 = fromRawBytes (mcdTypeInfo m9) b9
!d10 = fromRawBytes (mcdTypeInfo m10) b10
!d11 = fromRawBytes (mcdTypeInfo m11) b11
!d12 = fromRawBytes (mcdTypeInfo m12) b12
!d13 = fromRawBytes (mcdTypeInfo m13) b13
!d14 = fromRawBytes (mcdTypeInfo m14) b14
!d15 = fromRawBytes (mcdTypeInfo m15) b15
!d16 = fromRawBytes (mcdTypeInfo m16) b16
!d17 = fromRawBytes (mcdTypeInfo m17) b17
!d18 = fromRawBytes (mcdTypeInfo m18) b18
!d19 = fromRawBytes (mcdTypeInfo m19) b19
!d20 = fromRawBytes (mcdTypeInfo m20) b20
!d21 = fromRawBytes (mcdTypeInfo m21) b21
!d22 = fromRawBytes (mcdTypeInfo m22) b22
!d23 = fromRawBytes (mcdTypeInfo m23) b23
!d24 = fromRawBytes (mcdTypeInfo m24) b24
!d25 = fromRawBytes (mcdTypeInfo m25) b25
fromListOfRawBytes _ _ = error "fromListOfRawBytes: List length must be 25"
instance (Data a, Data b, Data c, Data d, Data e, Data f, Data g, Data h, Data i, Data j, Data k, Data l, Data m, Data n, Data o, Data p, Data q, Data r, Data s
, Data t, Data u, Data v, Data w, Data x, Data y, Data z) =>
Row (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z) where
fromListOfRawBytes [m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15,m16,m17,m18,m19,m20,m21,m22,m23,m24,m25,m26] [b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17,b18,b19,b20,b21,b22,b23,b24,b25,b26]
= (d1,d2,d3,d4,d5,d6,d7,d8,d9,d10,d11,d12,d13,d14,d15,d16,d17,d18,d19,d20,d21,d22,d23,d24,d25,d26)
where
!d1 = fromRawBytes (mcdTypeInfo m1) b1
!d2 = fromRawBytes (mcdTypeInfo m2) b2
!d3 = fromRawBytes (mcdTypeInfo m3) b3
!d4 = fromRawBytes (mcdTypeInfo m4) b4
!d5 = fromRawBytes (mcdTypeInfo m5) b5
!d6 = fromRawBytes (mcdTypeInfo m6) b6
!d7 = fromRawBytes (mcdTypeInfo m7) b7
!d8 = fromRawBytes (mcdTypeInfo m8) b8
!d9 = fromRawBytes (mcdTypeInfo m9) b9
!d10 = fromRawBytes (mcdTypeInfo m10) b10
!d11 = fromRawBytes (mcdTypeInfo m11) b11
!d12 = fromRawBytes (mcdTypeInfo m12) b12
!d13 = fromRawBytes (mcdTypeInfo m13) b13
!d14 = fromRawBytes (mcdTypeInfo m14) b14
!d15 = fromRawBytes (mcdTypeInfo m15) b15
!d16 = fromRawBytes (mcdTypeInfo m16) b16
!d17 = fromRawBytes (mcdTypeInfo m17) b17
!d18 = fromRawBytes (mcdTypeInfo m18) b18
!d19 = fromRawBytes (mcdTypeInfo m19) b19
!d20 = fromRawBytes (mcdTypeInfo m20) b20
!d21 = fromRawBytes (mcdTypeInfo m21) b21
!d22 = fromRawBytes (mcdTypeInfo m22) b22
!d23 = fromRawBytes (mcdTypeInfo m23) b23
!d24 = fromRawBytes (mcdTypeInfo m24) b24
!d25 = fromRawBytes (mcdTypeInfo m25) b25
!d26 = fromRawBytes (mcdTypeInfo m26) b26
fromListOfRawBytes _ _ = error "fromListOfRawBytes: List length must be 26"