Options.Applicative.Builder.Internal

optparse-applicative-0.18.1.0: Utilities and combinators for parsing command line options

Safe Haskell | Safe-Inferred
Language | Haskell98

Options.Applicative.Builder.Internal

Contents

- Internals

Synopsis

- data Mod (f :: Type -> Type) a = Mod (f a -> f a) (DefaultProp a) (OptProperties -> OptProperties)
- class HasName (f :: Type -> Type) where
  - name :: OptName -> f a -> f a
- class HasCompleter (f :: Type -> Type) where
  - modCompleter :: (Completer -> Completer) -> f a -> f a
- class HasValue (f :: Type -> Type) where
  - hasValueDummy :: f a -> ()
- class HasMetavar (f :: Type -> Type) where
  - hasMetavarDummy :: f a -> ()
- data OptionFields a = OptionFields {
  - optNames :: [OptName]
  - optCompleter :: Completer
  - optNoArgError :: String -> ParseError
  }
- data FlagFields a = FlagFields {
  - flagNames :: [OptName]
  - flagActive :: a
  }
- data CommandFields a = CommandFields {
  - cmdCommands :: [(String, ParserInfo a)]
  - cmdGroup :: Maybe String
  }
- data ArgumentFields a = ArgumentFields {
  - argCompleter :: Completer
  }
- data DefaultProp a = DefaultProp (Maybe a) (Maybe (a -> String))
- optionMod :: forall (f :: Type -> Type) a. (OptProperties -> OptProperties) -> Mod f a
- fieldMod :: (f a -> f a) -> Mod f a
- baseProps :: OptProperties
- mkCommand :: Mod CommandFields a -> (Maybe String, [(String, ParserInfo a)])
- mkParser :: DefaultProp a -> (OptProperties -> OptProperties) -> OptReader a -> Parser a
- mkOption :: DefaultProp a -> (OptProperties -> OptProperties) -> OptReader a -> Option a
- mkProps :: DefaultProp a -> (OptProperties -> OptProperties) -> OptProperties
- internal :: forall (f :: Type -> Type) a. Mod f a
- noGlobal :: forall (f :: Type -> Type) a. Mod f a

# Internals

data Mod (f :: Type -> Type) a #

An option modifier.

Option modifiers are values that represent a modification of the properties of an option.

The type parameter `a` is the return type of the option, while `f` is a record containing its properties (e.g. `OptionFields` for regular options, `FlagFields` for flags, etc...).

An option modifier consists of 3 elements:

- A field modifier, of the form `f a -> f a`. These are essentially (compositions of) setters for some of the properties supported by `f`.
- An optional default value and function to display it.
- A property modifier, of the form `OptProperties -> OptProperties`. This is just like the field modifier, but for properties applicable to any option.

Modifiers are instances of `Monoid`, and can be composed as such.

One rarely needs to deal with modifiers directly, as most of the times it is sufficient to pass them to builders (such as `strOption` or `flag`) to create options (see `Builder`).

Constructors

Mod (f a -> f a) (DefaultProp a) (OptProperties -> OptProperties) |

#### Instances

Instances details

Monoid (Mod f a) # |
Instance details Defined in Options.Applicative.Builder.Internal Methods mempty :: Mod f a # mappend :: Mod f a -> Mod f a -> Mod f a # mconcat :: [Mod f a] -> Mod f a #
Semigroup (Mod f a) # | Since: 0.13.0.0
Instance details Defined in Options.Applicative.Builder.Internal Methods (<>) :: Mod f a -> Mod f a -> Mod f a # sconcat :: NonEmpty (Mod f a) -> Mod f a # stimes :: Integral b => b -> Mod f a -> Mod f a #

class HasName (f :: Type -> Type) where #

Methods

name :: OptName -> f a -> f a #

#### Instances

Instances details

HasName FlagFields # |
Instance details Defined in Options.Applicative.Builder.Internal Methods name :: OptName -> FlagFields a -> FlagFields a #
HasName OptionFields # |
Instance details Defined in Options.Applicative.Builder.Internal Methods name :: OptName -> OptionFields a -> OptionFields a #

class HasCompleter (f :: Type -> Type) where #

Methods

modCompleter :: (Completer -> Completer) -> f a -> f a #

#### Instances

Instances details

HasCompleter ArgumentFields # |
Instance details Defined in Options.Applicative.Builder.Internal Methods modCompleter :: (Completer -> Completer) -> ArgumentFields a -> ArgumentFields a #
HasCompleter OptionFields # |
Instance details Defined in Options.Applicative.Builder.Internal Methods modCompleter :: (Completer -> Completer) -> OptionFields a -> OptionFields a #

class HasValue (f :: Type -> Type) where #

Methods

hasValueDummy :: f a -> () #

#### Instances

Instances details

HasValue ArgumentFields # |
Instance details Defined in Options.Applicative.Builder.Internal Methods hasValueDummy :: ArgumentFields a -> () #
HasValue OptionFields # |
Instance details Defined in Options.Applicative.Builder.Internal Methods hasValueDummy :: OptionFields a -> () #

class HasMetavar (f :: Type -> Type) where #

Methods

hasMetavarDummy :: f a -> () #

#### Instances

Instances details

HasMetavar ArgumentFields # |
Instance details Defined in Options.Applicative.Builder.Internal Methods hasMetavarDummy :: ArgumentFields a -> () #
HasMetavar CommandFields # |
Instance details Defined in Options.Applicative.Builder.Internal Methods hasMetavarDummy :: CommandFields a -> () #
HasMetavar OptionFields # |
Instance details Defined in Options.Applicative.Builder.Internal Methods hasMetavarDummy :: OptionFields a -> () #

data OptionFields a #

Constructors

OptionFields |
Fields optNames :: [OptName] optCompleter :: Completer optNoArgError :: String -> ParseError

#### Instances

Instances details

HasCompleter OptionFields # |
Instance details Defined in Options.Applicative.Builder.Internal Methods modCompleter :: (Completer -> Completer) -> OptionFields a -> OptionFields a #
HasMetavar OptionFields # |
Instance details Defined in Options.Applicative.Builder.Internal Methods hasMetavarDummy :: OptionFields a -> () #
HasName OptionFields # |
Instance details Defined in Options.Applicative.Builder.Internal Methods name :: OptName -> OptionFields a -> OptionFields a #
HasValue OptionFields # |
Instance details Defined in Options.Applicative.Builder.Internal Methods hasValueDummy :: OptionFields a -> () #

data FlagFields a #

Constructors

FlagFields |
Fields flagNames :: [OptName] flagActive :: a

#### Instances

Instances details

HasName FlagFields # |
Instance details Defined in Options.Applicative.Builder.Internal Methods name :: OptName -> FlagFields a -> FlagFields a #

data CommandFields a #

Constructors

CommandFields |
Fields cmdCommands :: [(String, ParserInfo a)] cmdGroup :: Maybe String

#### Instances

Instances details

HasMetavar CommandFields # |
Instance details Defined in Options.Applicative.Builder.Internal Methods hasMetavarDummy :: CommandFields a -> () #

data ArgumentFields a #

Constructors

ArgumentFields |
Fields argCompleter :: Completer

#### Instances

Instances details

HasCompleter ArgumentFields # |
Instance details Defined in Options.Applicative.Builder.Internal Methods modCompleter :: (Completer -> Completer) -> ArgumentFields a -> ArgumentFields a #
HasMetavar ArgumentFields # |
Instance details Defined in Options.Applicative.Builder.Internal Methods hasMetavarDummy :: ArgumentFields a -> () #
HasValue ArgumentFields # |
Instance details Defined in Options.Applicative.Builder.Internal Methods hasValueDummy :: ArgumentFields a -> () #

data DefaultProp a #

Constructors

DefaultProp (Maybe a) (Maybe (a -> String)) |

#### Instances

Instances details

Monoid (DefaultProp a) # |
Instance details Defined in Options.Applicative.Builder.Internal Methods mempty :: DefaultProp a # mappend :: DefaultProp a -> DefaultProp a -> DefaultProp a # mconcat :: [DefaultProp a] -> DefaultProp a #
Semigroup (DefaultProp a) # |
Instance details Defined in Options.Applicative.Builder.Internal Methods (<>) :: DefaultProp a -> DefaultProp a -> DefaultProp a # sconcat :: NonEmpty (DefaultProp a) -> DefaultProp a # stimes :: Integral b => b -> DefaultProp a -> DefaultProp a #

optionMod :: forall (f :: Type -> Type) a. (OptProperties -> OptProperties) -> Mod f a #

fieldMod :: (f a -> f a) -> Mod f a #

baseProps :: OptProperties #

Base default properties.

mkCommand :: Mod CommandFields a -> (Maybe String, [(String, ParserInfo a)]) #

mkParser :: DefaultProp a -> (OptProperties -> OptProperties) -> OptReader a -> Parser a #

mkOption :: DefaultProp a -> (OptProperties -> OptProperties) -> OptReader a -> Option a #

mkProps :: DefaultProp a -> (OptProperties -> OptProperties) -> OptProperties #

internal :: forall (f :: Type -> Type) a. Mod f a #

Hide this option completely from the help text

Use `hidden` if the option should remain visible in the full description.

noGlobal :: forall (f :: Type -> Type) a. Mod f a #

Suppress this option from appearing in global options