boots-app-0.1.0.7: Startup factories using IoC monad

Safe HaskellNone
LanguageHaskell2010

Boots.Factory.Salak

Contents

Synopsis

Documentation

class HasSalak env where Source #

Methods

askSalak :: Lens' env Salak Source #

Instances
HasSalak Salak Source # 
Instance details

Defined in Boots.Factory.Salak

HasSalak (AppEnv cxt) Source # 
Instance details

Defined in Boots.Factory.Application

Methods

askSalak :: Lens' (AppEnv cxt) Salak Source #

Configuration Functions

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

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

Minimal complete definition

askSourcePack

Methods

askSourcePack :: m SourcePack #

Monad has the ability to get a SourcePack instance.

askReload :: m (IO ReloadResult) #

Get reload action which used for reload profiles

setLogF :: (CallStack -> Text -> IO ()) -> m () #

logSalak :: Text -> m () #

require :: (MonadThrow m, MonadIO 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
MonadIO m => MonadSalak (LoadSalakT m) 
Instance details

Defined in Salak.Internal

MonadIO m => MonadSalak (RunSalakT m) 
Instance details

Defined in Salak.Internal

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

Defined in Boots.Factory.Salak

Methods

askSourcePack :: Factory m env SourcePack #

askReload :: Factory m env (IO ReloadResult) #

setLogF :: (CallStack -> Text -> IO ()) -> Factory m env () #

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

require :: (MonadThrow (Factory m env), MonadIO (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

askSourcePack :: AppT env m SourcePack #

askReload :: AppT env m (IO ReloadResult) #

setLogF :: (CallStack -> Text -> IO ()) -> AppT env m () #

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

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

Monad m => MonadSalak (ReaderT SourcePack m) 
Instance details

Defined in Salak.Internal.Prop

Orphan instances

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

Methods

askSourcePack :: Factory m env SourcePack #

askReload :: Factory m env (IO ReloadResult) #

setLogF :: (CallStack -> Text -> IO ()) -> Factory m env () #

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

require :: (MonadThrow (Factory m env), MonadIO (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

askSourcePack :: AppT env m SourcePack #

askReload :: AppT env m (IO ReloadResult) #

setLogF :: (CallStack -> Text -> IO ()) -> AppT env m () #

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

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