optima-0.1.1: Simple command line interface arguments parser

Safe HaskellNone
LanguageHaskell2010

Optima

Contents

Synopsis

IO

params Source #

Arguments

:: Text

Description of the application

-> Params a 
-> IO a 

Execute the parameters parser in IO, throwing an exception if anything goes wrong.

Params

data Params a Source #

Parameters product parser. Should be used for composition of all application parameters.

Instances
Functor Params Source # 
Instance details

Defined in Optima

Methods

fmap :: (a -> b) -> Params a -> Params b #

(<$) :: a -> Params b -> Params a #

Applicative Params Source # 
Instance details

Defined in Optima

Methods

pure :: a -> Params a #

(<*>) :: Params (a -> b) -> Params a -> Params b #

liftA2 :: (a -> b -> c) -> Params a -> Params b -> Params c #

(*>) :: Params a -> Params b -> Params b #

(<*) :: Params a -> Params b -> Params a #

Alternative Params Source # 
Instance details

Defined in Optima

Methods

empty :: Params a #

(<|>) :: Params a -> Params a -> Params a #

some :: Params a -> Params [a] #

many :: Params a -> Params [a] #

param Source #

Arguments

:: Maybe Char

Single-char name

-> Text

Long name

-> Param a 
-> Params a 

Lift a single parameter parser.

Param

data Param a Source #

Parameter parser.

Includes the description of the parameter.

Instances
Functor Param Source # 
Instance details

Defined in Optima

Methods

fmap :: (a -> b) -> Param a -> Param b #

(<$) :: a -> Param b -> Param a #

value Source #

Arguments

:: Text

Description. Can be empty

-> Default a

Default value

-> ValueFormat a

Value format

-> Value a 
-> Param a 

Create a single parameter parser from a value parser and meta information.

switch Source #

Arguments

:: Text

Description. Can be empty

-> Param Bool 

A parameter with no value, the presence of which is interpreted as True.

Value

data Value a Source #

Parameter value parser.

Instances
Monad Value Source # 
Instance details

Defined in Optima

Methods

(>>=) :: Value a -> (a -> Value b) -> Value b #

(>>) :: Value a -> Value b -> Value b #

return :: a -> Value a #

fail :: String -> Value a #

Functor Value Source # 
Instance details

Defined in Optima

Methods

fmap :: (a -> b) -> Value a -> Value b #

(<$) :: a -> Value b -> Value a #

MonadFail Value Source # 
Instance details

Defined in Optima

Methods

fail :: String -> Value a #

Applicative Value Source # 
Instance details

Defined in Optima

Methods

pure :: a -> Value a #

(<*>) :: Value (a -> b) -> Value a -> Value b #

liftA2 :: (a -> b -> c) -> Value a -> Value b -> Value c #

(*>) :: Value a -> Value b -> Value b #

(<*) :: Value a -> Value b -> Value a #

Alternative Value Source # 
Instance details

Defined in Optima

Methods

empty :: Value a #

(<|>) :: Value a -> Value a -> Value a #

some :: Value a -> Value [a] #

many :: Value a -> Value [a] #

MonadPlus Value Source # 
Instance details

Defined in Optima

Methods

mzero :: Value a #

mplus :: Value a -> Value a -> Value a #

explicitlyParsed :: Parser a -> Value a Source #

Lift an Attoparsec parser into value parser.

implicitlyParsed :: LenientParser a => Value a Source #

Lift an implicit lenient Attoparsec parser into value parser.

Default

data Default a Source #

Default value with its textual representation.

Instances
Functor Default Source # 
Instance details

Defined in Optima

Methods

fmap :: (a -> b) -> Default a -> Default b #

(<$) :: a -> Default b -> Default a #

explicitlyRepresented :: a -> Text -> Default a Source #

Provide a default value with explicit textual representation.

showable :: Show a => a -> Default a Source #

Provide a default value with textual representation formed using the implicit Show instance.

defaultless :: Default a Source #

Provide no default value.

ValueFormat

data ValueFormat a Source #

Parameter description.

Instances
Functor ValueFormat Source # 
Instance details

Defined in Optima

Methods

fmap :: (a -> b) -> ValueFormat a -> ValueFormat b #

(<$) :: a -> ValueFormat b -> ValueFormat a #

formattedByEnum :: (Bounded a, Enum a, Show a) => ValueFormat a Source #

Derive value format specification from the Enum instance.

unformatted :: ValueFormat a Source #

Avoid specifying the format.