boots-app-0.1.0.3: Startup factories using IoC monad

Safe HaskellNone
LanguageHaskell2010

Boots.Factory.Salak

Contents

Synopsis

Documentation

class HasSalak env where Source #

Instances
HasSalak SourcePack Source # 
Instance details

Defined in Boots.Factory.Salak

HasSalak (AppEnv cxt) Source # 
Instance details

Defined in Boots.Factory.Application

Configuration Functions

class Monad m => MonadSalak (m :: Type -> Type) where #

Core type class of salak, which provide function to parse properties.

Minimal complete definition

askSalak

Methods

askSalak :: m SourcePack #

Monad has the ability to get a SourcePack instance.

askReload :: m (IO ReloadResult) #

Get reload action which used for reload profiles

setLogF :: (String -> IO ()) -> m () #

logSalak :: String -> m () #

require :: (MonadThrow m, FromProp m a) => Text -> m a #

Parse properties using FromProp. For example:

a :: Bool              <- require "bool.key"
b :: Maybe Int         <- require "int.optional.key"
c :: Either String Int <- require "int.error.key"
d :: IO Int            <- require "int.reloadable.key"

require supports parse IO values, which actually wrap a MVar variable and can be reseted by reloading configurations. Normal value will not be affected by reloading configurations.

Instances
(m ~ t m', Monad m', Monad m, MonadTrans t, MonadSalak m') => MonadSalak m 
Instance details

Defined in Salak.Internal.Prop

Methods

askSalak :: m SourcePack #

askReload :: m (IO ReloadResult) #

setLogF :: (String -> IO ()) -> m () #

logSalak :: String -> m () #

require :: (MonadThrow m, FromProp m a) => Text -> m a #

MonadIO m => MonadSalak (LoadSalakT m) 
Instance details

Defined in Salak.Internal

Monad m => MonadSalak (RunSalakT m) 
Instance details

Defined in Salak.Internal

Monad m => MonadSalak (Prop m) 
Instance details

Defined in Salak.Internal.Prop

Methods

askSalak :: Prop m SourcePack #

askReload :: Prop m (IO ReloadResult) #

setLogF :: (String -> IO ()) -> Prop m () #

logSalak :: String -> Prop m () #

require :: (MonadThrow (Prop m), FromProp (Prop m) a) => Text -> Prop m a #

(HasSalak env, Monad m) => MonadSalak (Factory m env) Source # 
Instance details

Defined in Boots.Factory.Salak

Methods

askSalak :: Factory m env SourcePack #

askReload :: Factory m env (IO ReloadResult) #

setLogF :: (String -> IO ()) -> Factory m env () #

logSalak :: String -> Factory m env () #

require :: (MonadThrow (Factory m env), FromProp (Factory m env) a) => Text -> Factory m env a #

(HasSalak env, Monad m) => MonadSalak (AppT env m) Source # 
Instance details

Defined in Boots.Factory.Salak

Methods

askSalak :: AppT env m SourcePack #

askReload :: AppT env m (IO ReloadResult) #

setLogF :: (String -> IO ()) -> AppT env m () #

logSalak :: String -> AppT env m () #

require :: (MonadThrow (AppT env m), FromProp (AppT env m) a) => Text -> AppT env m a #

Orphan instances

(HasSalak env, Monad m) => MonadSalak (Factory m env) Source # 
Instance details

Methods

askSalak :: Factory m env SourcePack #

askReload :: Factory m env (IO ReloadResult) #

setLogF :: (String -> IO ()) -> Factory m env () #

logSalak :: String -> Factory m env () #

require :: (MonadThrow (Factory m env), FromProp (Factory m env) a) => Text -> Factory m env a #

(HasSalak env, Monad m) => MonadSalak (AppT env m) Source # 
Instance details

Methods

askSalak :: AppT env m SourcePack #

askReload :: AppT env m (IO ReloadResult) #

setLogF :: (String -> IO ()) -> AppT env m () #

logSalak :: String -> AppT env m () #

require :: (MonadThrow (AppT env m), FromProp (AppT env m) a) => Text -> AppT env m a #