-- | -- Module: Options.Types -- License: MIT module Options.Types ( OptionDefinitions(..) , Group(..) , OptionKey(..) , Location(..) , OptionInfo(..) ) where data OptionDefinitions = OptionDefinitions [OptionInfo] [(String, [OptionInfo])] data Group = Group { groupName :: String -- | A short title for the group, which is used when printing -- @--help@ output. , groupTitle :: String -- | A description of the group, which is used when printing -- @--help@ output. , groupDescription :: String } deriving (Eq, Show) data OptionKey = OptionKey String | OptionKeyHelpSummary | OptionKeyHelpGroup String | OptionKeyGenerated Integer | OptionKeyIgnored deriving (Eq, Ord, Show) data Location = Location { locationPackage :: String , locationModule :: String , locationFilename :: String , locationLine :: Integer } deriving (Eq, Show) data OptionInfo = OptionInfo { optionInfoKey :: OptionKey , optionInfoShortFlags :: [Char] , optionInfoLongFlags :: [String] , optionInfoDefault :: String , optionInfoUnary :: Bool , optionInfoUnaryOnly :: Bool -- used only for --help and friends , optionInfoDescription :: String , optionInfoGroup :: Maybe Group , optionInfoLocation :: Maybe Location , optionInfoTypeName :: String } deriving (Eq, Show)