module Database.Relational.Internal.UntypedTable (
Untyped (Untyped), name', width', columns', (!),
) where
import Data.Array (Array, elems)
import qualified Data.Array as Array
import Database.Relational.Internal.String (StringSQL)
data Untyped = Untyped String Int (Array Int StringSQL) deriving Int -> Untyped -> ShowS
[Untyped] -> ShowS
Untyped -> String
(Int -> Untyped -> ShowS)
-> (Untyped -> String) -> ([Untyped] -> ShowS) -> Show Untyped
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Untyped] -> ShowS
$cshowList :: [Untyped] -> ShowS
show :: Untyped -> String
$cshow :: Untyped -> String
showsPrec :: Int -> Untyped -> ShowS
$cshowsPrec :: Int -> Untyped -> ShowS
Show
name' :: Untyped -> String
name' :: Untyped -> String
name' (Untyped n :: String
n _ _) = String
n
width' :: Untyped -> Int
width' :: Untyped -> Int
width' (Untyped _ w :: Int
w _) = Int
w
columnArray :: Untyped -> Array Int StringSQL
columnArray :: Untyped -> Array Int StringSQL
columnArray (Untyped _ _ c :: Array Int StringSQL
c) = Array Int StringSQL
c
columns' :: Untyped -> [StringSQL]
columns' :: Untyped -> [StringSQL]
columns' = Array Int StringSQL -> [StringSQL]
forall i e. Array i e -> [e]
elems (Array Int StringSQL -> [StringSQL])
-> (Untyped -> Array Int StringSQL) -> Untyped -> [StringSQL]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Untyped -> Array Int StringSQL
columnArray
(!) :: Untyped
-> Int
-> StringSQL
t :: Untyped
t ! :: Untyped -> Int -> StringSQL
! i :: Int
i = Untyped -> Array Int StringSQL
columnArray Untyped
t Array Int StringSQL -> Int -> StringSQL
forall i e. Ix i => Array i e -> i -> e
Array.! Int
i