{-# LANGUAGE RecordWildCards #-}
module Text.Layout.Table.Spec.TableSpec where
import Data.Default.Class
import Text.Layout.Table.Spec.ColSpec
import Text.Layout.Table.Spec.HeaderSpec
import Text.Layout.Table.Spec.RowGroup
import Text.Layout.Table.Style
data TableSpec rowSep colSep r c a
= TableSpec
{ forall rowSep colSep r c a.
TableSpec rowSep colSep r c a -> [ColSpec]
colSpecs :: [ColSpec]
, forall rowSep colSep r c a.
TableSpec rowSep colSep r c a -> TableStyle rowSep colSep
tableStyle :: TableStyle rowSep colSep
, :: HeaderSpec rowSep r
, :: HeaderSpec colSep c
, forall rowSep colSep r c a.
TableSpec rowSep colSep r c a -> [RowGroup a]
rowGroups :: [RowGroup a]
}
simpleTableS
:: (Default rowSep, Default colSep)
=> TableStyle rowSep colSep
-> [RowGroup a]
-> TableSpec rowSep colSep String String a
simpleTableS :: forall rowSep colSep a.
(Default rowSep, Default colSep) =>
TableStyle rowSep colSep
-> [RowGroup a] -> TableSpec rowSep colSep String String a
simpleTableS = [ColSpec]
-> TableStyle rowSep colSep
-> [RowGroup a]
-> TableSpec rowSep colSep String String a
forall rowSep colSep a.
(Default rowSep, Default colSep) =>
[ColSpec]
-> TableStyle rowSep colSep
-> [RowGroup a]
-> TableSpec rowSep colSep String String a
headerlessTableS ([ColSpec]
-> TableStyle rowSep colSep
-> [RowGroup a]
-> TableSpec rowSep colSep String String a)
-> [ColSpec]
-> TableStyle rowSep colSep
-> [RowGroup a]
-> TableSpec rowSep colSep String String a
forall a b. (a -> b) -> a -> b
$ ColSpec -> [ColSpec]
forall a. a -> [a]
repeat ColSpec
defColSpec
headerlessTableS
:: (Default rowSep, Default colSep)
=> [ColSpec]
-> TableStyle rowSep colSep
-> [RowGroup a]
-> TableSpec rowSep colSep String String a
[ColSpec]
colSpecs TableStyle rowSep colSep
tableStyle [RowGroup a]
rowGroups = TableSpec :: forall rowSep colSep r c a.
[ColSpec]
-> TableStyle rowSep colSep
-> HeaderSpec rowSep r
-> HeaderSpec colSep c
-> [RowGroup a]
-> TableSpec rowSep colSep r c a
TableSpec { [ColSpec]
[RowGroup a]
HeaderSpec rowSep String
HeaderSpec colSep String
TableStyle rowSep colSep
colHeader :: HeaderSpec colSep String
rowHeader :: HeaderSpec rowSep String
rowGroups :: [RowGroup a]
tableStyle :: TableStyle rowSep colSep
colSpecs :: [ColSpec]
rowGroups :: [RowGroup a]
colHeader :: HeaderSpec colSep String
rowHeader :: HeaderSpec rowSep String
tableStyle :: TableStyle rowSep colSep
colSpecs :: [ColSpec]
.. }
where
rowHeader :: HeaderSpec rowSep String
rowHeader = HeaderSpec rowSep String
forall sep. Default sep => HeaderSpec sep String
noneH
colHeader :: HeaderSpec colSep String
colHeader = HeaderSpec colSep String
forall sep. Default sep => HeaderSpec sep String
noneH
columnHeaderTableS
:: Default rowSep
=> [ColSpec]
-> TableStyle rowSep colSep
-> HeaderSpec colSep c
-> [RowGroup a]
-> TableSpec rowSep colSep String c a
columnHeaderTableS :: forall rowSep colSep c a.
Default rowSep =>
[ColSpec]
-> TableStyle rowSep colSep
-> HeaderSpec colSep c
-> [RowGroup a]
-> TableSpec rowSep colSep String c a
columnHeaderTableS [ColSpec]
colSpecs TableStyle rowSep colSep
tableStyle HeaderSpec colSep c
colHeader [RowGroup a]
rowGroups = TableSpec :: forall rowSep colSep r c a.
[ColSpec]
-> TableStyle rowSep colSep
-> HeaderSpec rowSep r
-> HeaderSpec colSep c
-> [RowGroup a]
-> TableSpec rowSep colSep r c a
TableSpec { [ColSpec]
[RowGroup a]
HeaderSpec rowSep String
HeaderSpec colSep c
TableStyle rowSep colSep
rowHeader :: HeaderSpec rowSep String
rowGroups :: [RowGroup a]
colHeader :: HeaderSpec colSep c
tableStyle :: TableStyle rowSep colSep
colSpecs :: [ColSpec]
rowGroups :: [RowGroup a]
colHeader :: HeaderSpec colSep c
rowHeader :: HeaderSpec rowSep String
tableStyle :: TableStyle rowSep colSep
colSpecs :: [ColSpec]
.. }
where
rowHeader :: HeaderSpec rowSep String
rowHeader = HeaderSpec rowSep String
forall sep. Default sep => HeaderSpec sep String
noneH
fullTableS
:: [ColSpec]
-> TableStyle rowSep colSep
-> HeaderSpec rowSep r
-> HeaderSpec colSep c
-> [RowGroup a]
-> TableSpec rowSep colSep r c a
fullTableS :: forall rowSep colSep r c a.
[ColSpec]
-> TableStyle rowSep colSep
-> HeaderSpec rowSep r
-> HeaderSpec colSep c
-> [RowGroup a]
-> TableSpec rowSep colSep r c a
fullTableS = [ColSpec]
-> TableStyle rowSep colSep
-> HeaderSpec rowSep r
-> HeaderSpec colSep c
-> [RowGroup a]
-> TableSpec rowSep colSep r c a
forall rowSep colSep r c a.
[ColSpec]
-> TableStyle rowSep colSep
-> HeaderSpec rowSep r
-> HeaderSpec colSep c
-> [RowGroup a]
-> TableSpec rowSep colSep r c a
TableSpec