Options.Applicative.Builder.Internal

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

Safe Haskell | Safe
Language | Haskell98

Options.Applicative.Builder.Internal

Contents

- Internals

Synopsis

- data Mod f a = Mod (f a -> f a) (DefaultProp a) (OptProperties -> OptProperties)
- class HasName f where
  - name :: OptName -> f a -> f a
- class HasCompleter f where
  - modCompleter :: (Completer -> Completer) -> f a -> f a
- class HasValue f
- class HasMetavar f
- data OptionFields a = OptionFields {
  - optNames :: [OptName]
  - optCompleter :: Completer
  - optNoArgError :: ParseError
  }
- data FlagFields a = FlagFields {
  - flagNames :: [OptName]
  - flagActive :: a
  }
- data CommandFields a = CommandFields {
  - cmdCommands :: [(String, ParserInfo a)]
  }
- data ArgumentFields a = ArgumentFields {
  - argCompleter :: Completer
  }
- data DefaultProp a = DefaultProp (Maybe a) (Maybe (a -> String))
- optionMod :: (OptProperties -> OptProperties) -> Mod f a
- fieldMod :: (f a -> f a) -> Mod f a
- baseProps :: OptProperties
- mkCommand :: Mod CommandFields a -> ([String], String -> Maybe (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 :: Mod f a

# Internals

data Mod f 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.

You rarely need 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

Monoid (Mod f a) |

class HasName f where

Methods

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

Instances

HasName FlagFields |
HasName OptionFields |

class HasCompleter f where

Methods

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

Instances

HasCompleter ArgumentFields |
HasCompleter OptionFields |

class HasValue f

Minimal complete definition

hasValueDummy

Instances

HasValue ArgumentFields |
HasValue OptionFields |

class HasMetavar f

Minimal complete definition

hasMetavarDummy

Instances

HasMetavar ArgumentFields |
HasMetavar CommandFields |
HasMetavar OptionFields |

data OptionFields a

Constructors

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

Instances

HasMetavar OptionFields |
HasValue OptionFields |
HasCompleter OptionFields |
HasName OptionFields |

data FlagFields a

Constructors

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

Instances

HasName FlagFields |

data CommandFields a

Constructors

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

Instances

HasMetavar CommandFields |

data ArgumentFields a

Constructors

ArgumentFields |
Fields argCompleter :: Completer

Instances

HasMetavar ArgumentFields |
HasValue ArgumentFields |
HasCompleter ArgumentFields |

data DefaultProp a

Constructors

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

Instances

Monoid (DefaultProp a) |

optionMod :: (OptProperties -> OptProperties) -> Mod f a

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

baseProps :: OptProperties

Base default properties.

mkCommand :: Mod CommandFields a -> ([String], String -> Maybe (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 :: Mod f a

Hide this option from the help text