Copyright | 2019 Daniel YU |
---|---|
License | BSD3 |
Maintainer | leptonyu@gmail.com |
Stability | experimental |
Portability | portable |
Safe Haskell | None |
Language | Haskell2010 |
This module wrap salak
into a plugin.
Synopsis
- class HasSalak cxt where
- askSourcePack :: Lens' cxt SourcePack
- pluginSalak :: (MonadIO m, MonadCatch m) => String -> Plugin () m SourcePack
- class Monad m => MonadSalak (m :: Type -> Type) where
- askSalak :: m SourcePack
- askReload :: m (IO ReloadResult)
- require :: (MonadThrow m, FromProp m a) => Text -> m a
Documentation
class HasSalak cxt where Source #
Environment providing a configuration parser.
askSourcePack :: Lens' cxt SourcePack Source #
Instances
HasSalak SourcePack Source # | |
Defined in Boots.Plugin.Salak | |
HasSalak Simple Source # | |
Defined in Boots.Plugin.Simple |
:: (MonadIO m, MonadCatch m) | |
=> String | Configuration file name. |
-> Plugin () m SourcePack |
Plugin used for parse properties.
Configuration Functions
class Monad m => MonadSalak (m :: Type -> Type) where #
Core type class of salak, which provide function to parse properties.
askSalak :: m SourcePack #
Monad has the ability to get a SourcePack
instance.
askReload :: m (IO ReloadResult) #
Get reload action which used for reload profiles
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 | |
Defined in Salak.Internal.Prop askSalak :: m SourcePack # askReload :: m (IO ReloadResult) # require :: (MonadThrow m, FromProp m a) => Text -> m a # | |
MonadIO m => MonadSalak (LoadSalakT m) | |
Defined in Salak.Internal askSalak :: LoadSalakT m SourcePack # askReload :: LoadSalakT m (IO ReloadResult) # require :: (MonadThrow (LoadSalakT m), FromProp (LoadSalakT m) a) => Text -> LoadSalakT m a # | |
Monad m => MonadSalak (RunSalakT m) | |
Defined in Salak.Internal | |
Monad m => MonadSalak (Prop m) | |
Defined in Salak.Internal.Prop | |
HasSalak cxt => MonadSalak (Plugin cxt m) Source # | |
Defined in Boots.Plugin.Salak | |
(Monad m, HasSalak cxt) => MonadSalak (AppT cxt m) Source # | |
Defined in Boots.Plugin.Salak |