module Parser where
import Control.Applicative
import Options.Applicative
configParser
:: ( Bool ->
Bool ->
Bool ->
Bool ->
Bool ->
Bool ->
Double ->
Maybe Double ->
Maybe Double ->
config
) -> Parser config
configParser f = f
<$> switch ( long "hide-bar" <> help "Hide the bar indicating relative performance." )
<*> switch ( long "same-line" <> help "Print the analysis on the same line as the command." )
<*> switch ( long "hide-details" <> help "Hide standard deviation and number of samples." )
<*> switch ( long "print-once" <> help "Print only once the analysis. This is will print the analysis on timeout, maximal relative error or ctrl-c." )
<*> switch ( long "sort" <> help "Sort benchmarks by mean duration." )
<*> switch ( long "simple" <> help "Don't colorize output and don't use unicode." )
<*> option auto
( long "confidence"
<> help "Factor by which the standard error will be multiplied for calculating confidence intervals (default is 6)."
<> value 6
<> metavar "DOUBLE"
)
<*> optional
( option auto
( long "timeout"
<> help "Timeout after which the program is terminated. It finishes the currently running benchmark."
<> metavar "DOUBLE"
)
)
<*> optional
( option auto
( long "relative-error"
<> help "After every benchmark has got a relative error (calculated via confidence interval) below DOUBLE the program is terminated."
<> metavar "DOUBLE"
)
)