options-1.2.1.2: internal/Options/Types.hs
-- |
-- 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)