boots-0.0.3: Boot application by plugins

Copyright2019 Daniel YU
LicenseBSD3
Maintainerleptonyu@gmail.com
Stabilityexperimental
Portabilityportable
Safe HaskellNone
LanguageHaskell2010

Boots.Plugin.Salak

Contents

Description

This module wrap salak into a plugin.

Synopsis

Documentation

class HasSalak cxt where Source #

Environment providing a configuration parser.

pluginSalak Source #

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

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

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) #

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

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

Defined in Boots.Plugin.Salak

Methods

askSalak :: AppT cxt m SourcePack #

askReload :: AppT cxt m (IO ReloadResult) #

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

HasSalak cxt => MonadSalak (Plugin cxt m) Source # 
Instance details

Defined in Boots.Plugin.Salak

Methods

askSalak :: Plugin cxt m SourcePack #

askReload :: Plugin cxt m (IO ReloadResult) #

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

Orphan instances

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

Methods

askSalak :: AppT cxt m SourcePack #

askReload :: AppT cxt m (IO ReloadResult) #

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

HasSalak cxt => MonadSalak (Plugin cxt m) Source # 
Instance details

Methods

askSalak :: Plugin cxt m SourcePack #

askReload :: Plugin cxt m (IO ReloadResult) #

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