module Config ( Config (..), DemoBrowser (..), isFirefox ) where import Data.Text as T (Text) import Dhall (FromDhall, Generic, ToDhall) isFirefox :: DemoBrowser -> Bool isFirefox = \case Firefox {} -> True Chrome {} -> False data DemoBrowser = Chrome {headless :: Bool} | Firefox {headless :: Bool, profilePath :: Maybe Text} deriving (Eq, Show, Generic) instance FromDhall DemoBrowser instance ToDhall DemoBrowser data Config = MkConfig { browser :: DemoBrowser, httpUrl :: Text, httpPort :: Word, logging :: Bool, pauseMS :: Word } deriving (Eq, Generic, Show) instance FromDhall Config instance ToDhall Config