Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Extensible options. They are used for provider-specific settings, ingredient-specific settings and core settings (such as the test name pattern).
Synopsis
- class Typeable v => IsOption v where
- defaultValue :: v
- parseValue :: String -> Maybe v
- optionName :: Tagged v String
- optionHelp :: Tagged v String
- showDefaultValue :: v -> Maybe String
- optionCLParser :: Parser v
- data OptionSet
- setOption :: IsOption v => v -> OptionSet -> OptionSet
- changeOption :: forall v. IsOption v => (v -> v) -> OptionSet -> OptionSet
- lookupOption :: forall v. IsOption v => OptionSet -> v
- singleOption :: IsOption v => v -> OptionSet
- data OptionDescription where
- Option :: IsOption v => Proxy v -> OptionDescription
- uniqueOptionDescriptions :: [OptionDescription] -> [OptionDescription]
- flagCLParser :: forall v. IsOption v => Maybe Char -> v -> Parser v
- mkFlagCLParser :: forall v. IsOption v => Mod FlagFields v -> v -> Parser v
- mkOptionCLParser :: forall v. IsOption v => Mod OptionFields v -> Parser v
- safeRead :: Read a => String -> Maybe a
- safeReadBool :: String -> Maybe Bool
IsOption class
class Typeable v => IsOption v where Source #
An option is a data type that inhabits the IsOption
type class.
defaultValue :: v Source #
The value to use if the option was not supplied explicitly
parseValue :: String -> Maybe v Source #
Try to parse an option value from a string. Consider using
safeReadBool
for boolean options and safeRead
for numeric options.
optionName :: Tagged v String Source #
The option name. It is used to form the command line option name, for instance. Therefore, it had better not contain spaces or other fancy characters. It is recommended to use dashes instead of spaces.
optionHelp :: Tagged v String Source #
The option description or help string. This can be an arbitrary string.
showDefaultValue :: v -> Maybe String Source #
How a defaultValue
should be displayed in the help string. Nothing
(the default implementation) will result in nothing being displayed, while
will result in Just
defdef
being advertised as the default in the
help string.
optionCLParser :: Parser v Source #
A command-line option parser.
It has a default implementation in terms of the other methods.
You may want to override it in some cases (e.g. add a short flag) and
flagCLParser
, mkFlagCLParser
and mkOptionCLParser
might come in
handy.
Even if you override this, you still should implement all the methods above, to allow alternative interfaces.
Do not supply a default value (e.g., with the value
function) here
for this parser! This is because if no value was provided on the command
line we may lookup the option e.g. in the environment. But if the parser
always succeeds, we have no way to tell whether the user really provided
the option on the command line.
Similarly, do not use showDefaultWith
here, as it will be ignored. Use
the showDefaultValue
method of IsOption
instead.
Instances
IsOption TestPattern Source # | |
Defined in Test.Tasty.Patterns | |
IsOption Timeout Source # | |
Defined in Test.Tasty.Options.Core | |
IsOption NumThreads Source # | |
Defined in Test.Tasty.Options.Core | |
IsOption ListTests Source # | |
Defined in Test.Tasty.Ingredients.ListTests | |
IsOption AnsiTricks Source # | |
Defined in Test.Tasty.Ingredients.ConsoleReporter | |
IsOption UseColor Source # | Control color output |
Defined in Test.Tasty.Ingredients.ConsoleReporter | |
IsOption HideSuccesses Source # | |
Defined in Test.Tasty.Ingredients.ConsoleReporter | |
IsOption Quiet Source # | |
Defined in Test.Tasty.Ingredients.ConsoleReporter |
Option sets and operations
A set of options. Only one option of each type can be kept.
If some option has not been explicitly set, the default value is used.
changeOption :: forall v. IsOption v => (v -> v) -> OptionSet -> OptionSet Source #
Change the option value
lookupOption :: forall v. IsOption v => OptionSet -> v Source #
Query the option value
data OptionDescription where Source #
The purpose of this data type is to capture the dictionary corresponding to a particular option.
Option :: IsOption v => Proxy v -> OptionDescription |
uniqueOptionDescriptions :: [OptionDescription] -> [OptionDescription] Source #
Remove duplicated OptionDescription
, preserving existing order otherwise
Since: 1.4.1
Utilities
:: forall v. IsOption v | |
=> Maybe Char | optional short flag |
-> v | non-default value (when the flag is supplied) |
-> Parser v |
Command-line parser to use with flags
:: forall v. IsOption v | |
=> Mod FlagFields v | option modifier |
-> v | non-default value (when the flag is supplied) |
-> Parser v |
Command-line flag parser that takes additional option modifiers.
mkOptionCLParser :: forall v. IsOption v => Mod OptionFields v -> Parser v Source #
Command-line option parser that takes additional option modifiers.