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
(Group -> Group -> Bool) -> (Group -> Group -> Bool) -> Eq Group
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
(Int -> Group -> ShowS)
-> (Group -> String) -> ([Group] -> ShowS) -> Show Group
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
(OptionKey -> OptionKey -> Bool)
-> (OptionKey -> OptionKey -> Bool) -> Eq OptionKey
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
Eq OptionKey
-> (OptionKey -> OptionKey -> Ordering)
-> (OptionKey -> OptionKey -> Bool)
-> (OptionKey -> OptionKey -> Bool)
-> (OptionKey -> OptionKey -> Bool)
-> (OptionKey -> OptionKey -> Bool)
-> (OptionKey -> OptionKey -> OptionKey)
-> (OptionKey -> OptionKey -> OptionKey)
-> Ord 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
(Int -> OptionKey -> ShowS)
-> (OptionKey -> String)
-> ([OptionKey] -> ShowS)
-> Show OptionKey
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
(Location -> Location -> Bool)
-> (Location -> Location -> Bool) -> Eq Location
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
(Int -> Location -> ShowS)
-> (Location -> String) -> ([Location] -> ShowS) -> Show Location
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
(OptionInfo -> OptionInfo -> Bool)
-> (OptionInfo -> OptionInfo -> Bool) -> Eq OptionInfo
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
(Int -> OptionInfo -> ShowS)
-> (OptionInfo -> String)
-> ([OptionInfo] -> ShowS)
-> Show OptionInfo
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)