module Options.Types
( OptionDefinitions (..),
Group (..),
OptionKey (..),
Location (..),
OptionInfo (..),
)
where
data OptionDefinitions = OptionDefinitions [OptionInfo] [(String, [OptionInfo])]
data Group = Group
{ Group -> String
groupName :: String,
Group -> String
groupTitle :: String,
Group -> String
groupDescription :: String
}
deriving (Group -> Group -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Group -> Group -> Bool
$c/= :: Group -> Group -> Bool
== :: Group -> Group -> Bool
$c== :: Group -> Group -> Bool
Eq, Int -> Group -> ShowS
[Group] -> ShowS
Group -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Group] -> ShowS
$cshowList :: [Group] -> ShowS
show :: Group -> String
$cshow :: Group -> String
showsPrec :: Int -> Group -> ShowS
$cshowsPrec :: Int -> Group -> ShowS
Show)
data OptionKey
= OptionKey String
| OptionKeyHelpSummary
| OptionKeyHelpGroup String
| OptionKeyGenerated Integer
| OptionKeyIgnored
deriving (OptionKey -> OptionKey -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: OptionKey -> OptionKey -> Bool
$c/= :: OptionKey -> OptionKey -> Bool
== :: OptionKey -> OptionKey -> Bool
$c== :: OptionKey -> OptionKey -> Bool
Eq, Eq OptionKey
OptionKey -> OptionKey -> Bool
OptionKey -> OptionKey -> Ordering
OptionKey -> OptionKey -> OptionKey
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: OptionKey -> OptionKey -> OptionKey
$cmin :: OptionKey -> OptionKey -> OptionKey
max :: OptionKey -> OptionKey -> OptionKey
$cmax :: OptionKey -> OptionKey -> OptionKey
>= :: OptionKey -> OptionKey -> Bool
$c>= :: OptionKey -> OptionKey -> Bool
> :: OptionKey -> OptionKey -> Bool
$c> :: OptionKey -> OptionKey -> Bool
<= :: OptionKey -> OptionKey -> Bool
$c<= :: OptionKey -> OptionKey -> Bool
< :: OptionKey -> OptionKey -> Bool
$c< :: OptionKey -> OptionKey -> Bool
compare :: OptionKey -> OptionKey -> Ordering
$ccompare :: OptionKey -> OptionKey -> Ordering
Ord, Int -> OptionKey -> ShowS
[OptionKey] -> ShowS
OptionKey -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [OptionKey] -> ShowS
$cshowList :: [OptionKey] -> ShowS
show :: OptionKey -> String
$cshow :: OptionKey -> String
showsPrec :: Int -> OptionKey -> ShowS
$cshowsPrec :: Int -> OptionKey -> ShowS
Show)
data Location = Location
{ Location -> String
locationPackage :: String,
Location -> String
locationModule :: String,
Location -> String
locationFilename :: String,
Location -> Integer
locationLine :: Integer
}
deriving (Location -> Location -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Location -> Location -> Bool
$c/= :: Location -> Location -> Bool
== :: Location -> Location -> Bool
$c== :: Location -> Location -> Bool
Eq, Int -> Location -> ShowS
[Location] -> ShowS
Location -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Location] -> ShowS
$cshowList :: [Location] -> ShowS
show :: Location -> String
$cshow :: Location -> String
showsPrec :: Int -> Location -> ShowS
$cshowsPrec :: Int -> Location -> ShowS
Show)
data OptionInfo = OptionInfo
{ OptionInfo -> OptionKey
optionInfoKey :: OptionKey,
OptionInfo -> String
optionInfoShortFlags :: [Char],
OptionInfo -> [String]
optionInfoLongFlags :: [String],
OptionInfo -> String
optionInfoDefault :: String,
OptionInfo -> Bool
optionInfoUnary :: Bool,
OptionInfo -> Bool
optionInfoUnaryOnly :: Bool,
OptionInfo -> String
optionInfoDescription :: String,
OptionInfo -> Maybe Group
optionInfoGroup :: Maybe Group,
OptionInfo -> Maybe Location
optionInfoLocation :: Maybe Location,
OptionInfo -> String
optionInfoTypeName :: String
}
deriving (OptionInfo -> OptionInfo -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: OptionInfo -> OptionInfo -> Bool
$c/= :: OptionInfo -> OptionInfo -> Bool
== :: OptionInfo -> OptionInfo -> Bool
$c== :: OptionInfo -> OptionInfo -> Bool
Eq, Int -> OptionInfo -> ShowS
[OptionInfo] -> ShowS
OptionInfo -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [OptionInfo] -> ShowS
$cshowList :: [OptionInfo] -> ShowS
show :: OptionInfo -> String
$cshow :: OptionInfo -> String
showsPrec :: Int -> OptionInfo -> ShowS
$cshowsPrec :: Int -> OptionInfo -> ShowS
Show)