kontrakcja-templates-0.12: Utilities for working with many HStringTemplate templates from files.

Safe HaskellNone
LanguageHaskell2010

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

Documentation

newtype Fields m a Source #

Simple monad transformer that collects info about template params

Constructors

Fields 

Fields

Instances
MonadTrans Fields Source # 
Instance details

Defined in Text.StringTemplates.Fields

Methods

lift :: Monad m => m a -> Fields m a #

MonadTransControl Fields Source # 
Instance details

Defined in Text.StringTemplates.Fields

Associated Types

type StT Fields a :: Type #

Methods

liftWith :: Monad m => (Run Fields -> m a) -> Fields m a #

restoreT :: Monad m => m (StT Fields a) -> Fields m a #

MonadBase b m => MonadBase b (Fields m) Source # 
Instance details

Defined in Text.StringTemplates.Fields

Methods

liftBase :: b α -> Fields m α #

MonadBaseControl b m => MonadBaseControl b (Fields m) Source # 
Instance details

Defined in Text.StringTemplates.Fields

Associated Types

type StM (Fields m) a :: Type #

Methods

liftBaseWith :: (RunInBase (Fields m) b -> b a) -> Fields m a #

restoreM :: StM (Fields m) a -> Fields m a #

Monad m => Monad (Fields m) Source # 
Instance details

Defined in Text.StringTemplates.Fields

Methods

(>>=) :: Fields m a -> (a -> Fields m b) -> Fields m b #

(>>) :: Fields m a -> Fields m b -> Fields m b #

return :: a -> Fields m a #

fail :: String -> Fields m a #

Functor m => Functor (Fields m) Source # 
Instance details

Defined in Text.StringTemplates.Fields

Methods

fmap :: (a -> b) -> Fields m a -> Fields m b #

(<$) :: a -> Fields m b -> Fields m a #

Monad m => Applicative (Fields m) Source # 
Instance details

Defined in Text.StringTemplates.Fields

Methods

pure :: a -> Fields m a #

(<*>) :: Fields m (a -> b) -> Fields m a -> Fields m b #

liftA2 :: (a -> b -> c) -> Fields m a -> Fields m b -> Fields m c #

(*>) :: Fields m a -> Fields m b -> Fields m b #

(<*) :: Fields m a -> Fields m b -> Fields m a #

MonadThrow m => MonadThrow (Fields m) Source # 
Instance details

Defined in Text.StringTemplates.Fields

Methods

throwM :: Exception e => e -> Fields m a #

MonadCatch m => MonadCatch (Fields m) Source # 
Instance details

Defined in Text.StringTemplates.Fields

Methods

catch :: Exception e => Fields m a -> (e -> Fields m a) -> Fields m a #

MonadMask m => MonadMask (Fields m) Source # 
Instance details

Defined in Text.StringTemplates.Fields

Methods

mask :: ((forall a. Fields m a -> Fields m a) -> Fields m b) -> Fields m b #

uninterruptibleMask :: ((forall a. Fields m a -> Fields m a) -> Fields m b) -> Fields m b #

generalBracket :: Fields m a -> (a -> ExitCase b -> Fields m c) -> (a -> Fields m b) -> Fields m (b, c) #

type StT Fields m Source # 
Instance details

Defined in Text.StringTemplates.Fields

type StT Fields m
type StM (Fields m) a Source # 
Instance details

Defined in Text.StringTemplates.Fields

type StM (Fields m) a = ComposeSt Fields m a

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

Orphan instances

ToSElem Int16 Source # 
Instance details

Methods

toSElem :: Stringable b => Int16 -> SElem b #

toSElemList :: Stringable b => [Int16] -> SElem b #

ToSElem Int32 Source # 
Instance details

Methods

toSElem :: Stringable b => Int32 -> SElem b #

toSElemList :: Stringable b => [Int32] -> SElem b #

ToSElem Int64 Source # 
Instance details

Methods

toSElem :: Stringable b => Int64 -> SElem b #

toSElemList :: Stringable b => [Int64] -> SElem b #

ToSElem Word Source # 
Instance details

Methods

toSElem :: Stringable b => Word -> SElem b #

toSElemList :: Stringable b => [Word] -> SElem b #

ToSElem Word8 Source # 
Instance details

Methods

toSElem :: Stringable b => Word8 -> SElem b #

toSElemList :: Stringable b => [Word8] -> SElem b #

ToSElem Word16 Source # 
Instance details

Methods

toSElem :: Stringable b => Word16 -> SElem b #

toSElemList :: Stringable b => [Word16] -> SElem b #

ToSElem Word32 Source # 
Instance details

Methods

toSElem :: Stringable b => Word32 -> SElem b #

toSElemList :: Stringable b => [Word32] -> SElem b #

ToSElem Word64 Source # 
Instance details

Methods

toSElem :: Stringable b => Word64 -> SElem b #

toSElemList :: Stringable b => [Word64] -> SElem b #

Stringable a => ToSElem (SElem a) Source # 
Instance details

Methods

toSElem :: Stringable b => SElem a -> SElem b #

toSElemList :: Stringable b => [SElem a] -> SElem b #