| Safe Haskell | Safe-Inferred |
|---|---|
| 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
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