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
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 String
n Int
_ Array Int StringSQL
_) = String
n
width' :: Untyped -> Int
width' :: Untyped -> Int
width' (Untyped String
_ Int
w Array Int StringSQL
_) = Int
w
columnArray :: Untyped -> Array Int StringSQL
columnArray :: Untyped -> Array Int StringSQL
columnArray (Untyped String
_ Int
_ Array Int StringSQL
c) = Array Int StringSQL
c
columns' :: Untyped -> [StringSQL]
columns' :: Untyped -> [StringSQL]
columns' = forall i e. Array i e -> [e]
elems forall b c a. (b -> c) -> (a -> b) -> a -> c
. Untyped -> Array Int StringSQL
columnArray
(!) :: Untyped
-> Int
-> StringSQL
Untyped
t ! :: Untyped -> Int -> StringSQL
! Int
i = Untyped -> Array Int StringSQL
columnArray Untyped
t forall i e. Ix i => Array i e -> i -> e
Array.! Int
i