| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Text.StringTemplates.Fields
Contents
Description
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