| Copyright | 2019 Daniel YU |
|---|---|
| License | BSD3 |
| Maintainer | leptonyu@gmail.com |
| Stability | experimental |
| Portability | portable |
| Safe Haskell | None |
| Language | Haskell2010 |
Boots.Plugin.Salak
Description
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.
Methods
askSourcePack :: Lens' cxt SourcePack Source #
Instances
| HasSalak SourcePack Source # | |
Defined in Boots.Plugin.Salak Methods | |
| HasSalak Simple Source # | |
Defined in Boots.Plugin.Simple Methods | |
Arguments
| :: (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.
Minimal complete definition
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
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 Methods 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 Methods 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 | |