tonaparser-0.2.0.0: Scalable way to pass runtime configurations for tonatona
Safe HaskellSafe-Inferred
LanguageHaskell2010

TonaParser

Description

Integrated parser library created for tonatona meta application framework. It can construct system configuration from environment variables, command line arguments, and any IO values depends on them. See details for example/Main.hs.

Synopsis

Run parser

data Parser a Source #

Main type representing how to construct system configuration.

Instances

Instances details
MonadIO Parser Source # 
Instance details

Defined in TonaParser

Methods

liftIO :: IO a -> Parser a #

Applicative Parser Source # 
Instance details

Defined in TonaParser

Methods

pure :: a -> Parser a #

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

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

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

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

Functor Parser Source # 
Instance details

Defined in TonaParser

Methods

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

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

Monad Parser Source # 
Instance details

Defined in TonaParser

Methods

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

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

return :: a -> Parser a #

withConfig :: Parser a -> (a -> IO ()) -> IO () Source #

Construct primitive parsers

optionalVal :: Var a => Description -> Source -> a -> Parser a Source #

A Parser constructor for optional values.

requiredVal :: Var a => Description -> Source -> Parser a Source #

A Parser constructor for required values.

optionalEnum :: (Var a, Enum a, Bounded a) => Description -> Source -> a -> Parser a Source #

A Parser constructor for optional values.

requiredEnum :: (Var a, Enum a, Bounded a) => Description -> Source -> Parser a Source #

A Parser constructor for required values.

liftWith :: ((a -> IO ()) -> IO ()) -> Parser a Source #

A Parser constructor from cont.

class Typeable a => Var a where #

Class for converting to / from an environment variable

Methods

toVar :: a -> String #

Convert a value into an environment variable.

fromVar :: String -> Maybe a #

Parse an environment variable.

Instances

Instances details
Var Int16 
Instance details

Defined in System.Envy

Var Int32 
Instance details

Defined in System.Envy

Var Int64 
Instance details

Defined in System.Envy

Var Int8 
Instance details

Defined in System.Envy

Methods

toVar :: Int8 -> String #

fromVar :: String -> Maybe Int8 #

Var Word16 
Instance details

Defined in System.Envy

Var Word32 
Instance details

Defined in System.Envy

Var Word64 
Instance details

Defined in System.Envy

Var Word8 
Instance details

Defined in System.Envy

Var ByteString 
Instance details

Defined in System.Envy

Var ByteString 
Instance details

Defined in System.Envy

Var Text 
Instance details

Defined in System.Envy

Methods

toVar :: Text -> String #

fromVar :: String -> Maybe Text #

Var Text 
Instance details

Defined in System.Envy

Methods

toVar :: Text -> String #

fromVar :: String -> Maybe Text #

Var Day 
Instance details

Defined in System.Envy

Methods

toVar :: Day -> String #

fromVar :: String -> Maybe Day #

Var UTCTime 
Instance details

Defined in System.Envy

Var String 
Instance details

Defined in System.Envy

Var Integer 
Instance details

Defined in System.Envy

Var () 
Instance details

Defined in System.Envy

Methods

toVar :: () -> String #

fromVar :: String -> Maybe () #

Var Bool 
Instance details

Defined in System.Envy

Methods

toVar :: Bool -> String #

fromVar :: String -> Maybe Bool #

Var Double 
Instance details

Defined in System.Envy

Var Int 
Instance details

Defined in System.Envy

Methods

toVar :: Int -> String #

fromVar :: String -> Maybe Int #

(Var a, Typeable a) => Var (Identity a) 
Instance details

Defined in System.Envy

Methods

toVar :: Identity a -> String #

fromVar :: String -> Maybe (Identity a) #

(Var a, Typeable a) => Var (First a) 
Instance details

Defined in System.Envy

Methods

toVar :: First a -> String #

fromVar :: String -> Maybe (First a) #

(Var a, Typeable a) => Var (Last a) 
Instance details

Defined in System.Envy

Methods

toVar :: Last a -> String #

fromVar :: String -> Maybe (Last a) #

(Typeable a, Show a, Read a) => Var (ReadShowVar a) 
Instance details

Defined in System.Envy

Var a => Var (Maybe a) 
Instance details

Defined in System.Envy

Methods

toVar :: Maybe a -> String #

fromVar :: String -> Maybe (Maybe a) #

data Description Source #

Instances

Instances details
IsString Description Source # 
Instance details

Defined in TonaParser

Read Description Source # 
Instance details

Defined in TonaParser

Show Description Source # 
Instance details

Defined in TonaParser

Eq Description Source # 
Instance details

Defined in TonaParser

Modify parsers

data ParserMods Source #

Instances

Instances details
Monoid ParserMods Source # 
Instance details

Defined in TonaParser

Semigroup ParserMods Source # 
Instance details

Defined in TonaParser