nested-routes-2.2.0: Declarative, compositional Wai responses

Safe HaskellNone
LanguageHaskell2010

Web.Routes.Nested

Synopsis

Documentation

newtype HandlerT z x m a Source

Constructors

HandlerT 

Fields

runHandler :: WriterT (RUPTrie Text x, RUPTrie Text x) m a
 

Instances

type ActionT z m a = VerbListenerT z (FileExtListenerT Response m a) m a Source

handle Source

Arguments

:: (Monad m, Functor m, cleanxs ~ OnlyJusts xs, HasResult childType (ActionT z m ()), ExpectArity cleanxs childType, Singleton (UrlChunks xs) childType (RUPTrie Text result), Extrude (UrlChunks xs) (RUPTrie Text childType) (RUPTrie Text result), ArityMinusTypeList childType cleanxs ~ result, childType ~ TypeListToArity cleanxs result) 
=> UrlChunks xs

Path to match against

-> Maybe childType

Possibly a function, ending in ActionT z m ().

-> Maybe (HandlerT z childType m ())

Potential child routes

-> HandlerT z result m () 

For routes ending with a literal.

parent :: (Monad m, Functor m, cleanxs ~ OnlyJusts xs, Singleton (UrlChunks xs) childType (RUPTrie Text result), Extrude (UrlChunks xs) (RUPTrie Text childType) (RUPTrie Text result), ArityMinusTypeList childType cleanxs ~ result, childType ~ TypeListToArity cleanxs result) => UrlChunks xs -> HandlerT z childType m () -> HandlerT z result m () Source

notFound :: (Monad m, Functor m, cleanxs ~ OnlyJusts xs, HasResult childType (ActionT z m ()), ExpectArity cleanxs childType, Singleton (UrlChunks xs) childType (RUPTrie Text result), Extrude (UrlChunks xs) (RUPTrie Text childType) (RUPTrie Text result), ArityMinusTypeList childType cleanxs ~ result, childType ~ TypeListToArity cleanxs result) => UrlChunks xs -> Maybe childType -> Maybe (HandlerT z childType m ()) -> HandlerT z result m () Source

route Source

Arguments

:: (Functor m, Monad m, MonadIO m) 
=> HandlerT z (ActionT z m ()) m a

Assembled handle calls

-> Request 
-> (Response -> IO ResponseReceived) 
-> m ResponseReceived 

Turns a HandlerT into a Wai Application