module Text.Layout.Table.Spec.HeaderSpec where

import Data.Default.Class

import Text.Layout.Table.Spec.HeaderColSpec

-- | Specifies a header.
data HeaderSpec
    = HeaderHS [HeaderColSpec] [String]
    | NoneHS

-- | By the default the header is not shown.
instance Default HeaderSpec where
    def :: HeaderSpec
def = HeaderSpec
NoneHS

-- | Specify a header column for every title.
fullH :: [HeaderColSpec] -> [String] -> HeaderSpec
fullH :: [HeaderColSpec] -> [String] -> HeaderSpec
fullH = [HeaderColSpec] -> [String] -> HeaderSpec
HeaderHS

-- | Use titles with the default header column specification.
titlesH :: [String] -> HeaderSpec
titlesH :: [String] -> HeaderSpec
titlesH = [HeaderColSpec] -> [String] -> HeaderSpec
fullH ([HeaderColSpec] -> [String] -> HeaderSpec)
-> [HeaderColSpec] -> [String] -> HeaderSpec
forall a b. (a -> b) -> a -> b
$ HeaderColSpec -> [HeaderColSpec]
forall a. a -> [a]
repeat HeaderColSpec
forall a. Default a => a
def