Safe Haskell | None |
---|---|
Language | Haskell2010 |
Module for easy creating template params
Example usage:
-- applicable to renderTemplate, renderTemplateI functions fields :: Fields Identity () fields = do value "foo" "bar" valueM "foo2" $ return "bar2" object "foo3" $ do value "foo31" "bar31" value "foo32" "bar32" objects "foo4" [ do value "foo411" "bar411" value "foo412" "bar412" , do value "foo421" "bar421" value "foo422" "bar422" ] -- applicable to renderTemplateMain functions params :: [(String, SElem String)] params = runIdentity $ runFields fields
Synopsis
- newtype Fields m a = Fields {
- unFields :: InnerFields m a
- runFields :: Monad m => Fields m () -> m [(String, SElem String)]
- value :: (Monad m, ToSElem a) => String -> a -> Fields m ()
- valueM :: (Monad m, ToSElem a) => String -> m a -> Fields m ()
- object :: Monad m => String -> Fields m () -> Fields m ()
- objects :: Monad m => String -> [Fields m ()] -> Fields m ()
Documentation
Simple monad transformer that collects info about template params
Instances
MonadTrans Fields Source # | |
Defined in Text.StringTemplates.Fields | |
MonadTransControl Fields Source # | |
MonadBase b m => MonadBase b (Fields m) Source # | |
Defined in Text.StringTemplates.Fields | |
MonadBaseControl b m => MonadBaseControl b (Fields m) Source # | |
Monad m => Monad (Fields m) Source # | |
Functor m => Functor (Fields m) Source # | |
Monad m => Applicative (Fields m) Source # | |
MonadThrow m => MonadThrow (Fields m) Source # | |
Defined in Text.StringTemplates.Fields | |
MonadCatch m => MonadCatch (Fields m) Source # | |
MonadMask m => MonadMask (Fields m) Source # | |
Defined in Text.StringTemplates.Fields | |
type StT Fields m Source # | |
Defined in Text.StringTemplates.Fields | |
type StM (Fields m) a Source # | |
Defined in Text.StringTemplates.Fields |
runFields :: Monad m => Fields m () -> m [(String, SElem String)] Source #
get all collected template params
value :: (Monad m, ToSElem a) => String -> a -> Fields m () Source #
create a new named template parameter
valueM :: (Monad m, ToSElem a) => String -> m a -> Fields m () Source #
create a new named template parameter (monad version)
object :: Monad m => String -> Fields m () -> Fields m () Source #
collect all params under a new namespace
objects :: Monad m => String -> [Fields m ()] -> Fields m () Source #
collect all params under a new list namespace