module HashAddressed.App.Verbosity.Options
  (
    verboseOption, quietOption, verbosityOption,
  )
  where

import Essentials
import HashAddressed.App.Verbosity.Type

import qualified Options.Applicative as Options

verboseOption :: Options.Parser Bool
verboseOption :: Parser Bool
verboseOption = Mod FlagFields Bool -> Parser Bool
Options.switch forall a b. (a -> b) -> a -> b
$ forall (f :: * -> *) a. HasName f => String -> Mod f a
Options.long String
"verbose" forall a. Semigroup a => a -> a -> a
<> forall (f :: * -> *) a. String -> Mod f a
Options.help
    String
"Print miscellaneous commentary to the standard error stream"

quietOption :: Options.Parser Bool
quietOption :: Parser Bool
quietOption = Mod FlagFields Bool -> Parser Bool
Options.switch forall a b. (a -> b) -> a -> b
$ forall (f :: * -> *) a. HasName f => String -> Mod f a
Options.long String
"quiet" forall a. Semigroup a => a -> a -> a
<> forall (f :: * -> *) a. String -> Mod f a
Options.help
    String
"Do not print normal output to the standard output stream"

verbosityOption :: Options.Parser Verbosity
verbosityOption :: Parser Verbosity
verbosityOption = do
    Bool
quiet <- Parser Bool
quietOption
    Bool
verbose <- Parser Bool
verboseOption
    pure Verbosity{ Bool
quiet :: Bool
quiet :: Bool
quiet, Bool
verbose :: Bool
verbose :: Bool
verbose }