module LinkCheck.OptParse.Types where

import Control.Monad.Logger
import Network.URI

data Flags = Flags
  { Flags -> URI
flagUri :: !URI,
    Flags -> Maybe LogLevel
flagLogLevel :: !(Maybe LogLevel),
    Flags -> Maybe Int
flagFetchers :: !(Maybe Int),
    Flags -> Maybe Bool
flagExternal :: !(Maybe Bool),
    Flags -> Maybe Bool
flagCheckFragments :: !(Maybe Bool),
    Flags -> Maybe Word
flagMaxDepth :: !(Maybe Word),
    Flags -> Maybe Word
flagCacheSize :: !(Maybe Word)
  }
  deriving (Int -> Flags -> ShowS
[Flags] -> ShowS
Flags -> String
(Int -> Flags -> ShowS)
-> (Flags -> String) -> ([Flags] -> ShowS) -> Show Flags
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Flags] -> ShowS
$cshowList :: [Flags] -> ShowS
show :: Flags -> String
$cshow :: Flags -> String
showsPrec :: Int -> Flags -> ShowS
$cshowsPrec :: Int -> Flags -> ShowS
Show, Flags -> Flags -> Bool
(Flags -> Flags -> Bool) -> (Flags -> Flags -> Bool) -> Eq Flags
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Flags -> Flags -> Bool
$c/= :: Flags -> Flags -> Bool
== :: Flags -> Flags -> Bool
$c== :: Flags -> Flags -> Bool
Eq)

data Settings = Settings
  { Settings -> URI
setUri :: !URI,
    Settings -> LogLevel
setLogLevel :: !LogLevel,
    Settings -> Maybe Int
setFetchers :: !(Maybe Int),
    Settings -> Bool
setExternal :: !Bool,
    Settings -> Bool
setCheckFragments :: !Bool,
    Settings -> Maybe Word
setMaxDepth :: !(Maybe Word),
    Settings -> Maybe Word
setCacheSize :: !(Maybe Word)
  }
  deriving (Int -> Settings -> ShowS
[Settings] -> ShowS
Settings -> String
(Int -> Settings -> ShowS)
-> (Settings -> String) -> ([Settings] -> ShowS) -> Show Settings
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Settings] -> ShowS
$cshowList :: [Settings] -> ShowS
show :: Settings -> String
$cshow :: Settings -> String
showsPrec :: Int -> Settings -> ShowS
$cshowsPrec :: Int -> Settings -> ShowS
Show, Settings -> Settings -> Bool
(Settings -> Settings -> Bool)
-> (Settings -> Settings -> Bool) -> Eq Settings
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Settings -> Settings -> Bool
$c/= :: Settings -> Settings -> Bool
== :: Settings -> Settings -> Bool
$c== :: Settings -> Settings -> Bool
Eq)