nested-routes-3.0.0: Declarative, compositional Wai responses

Safe HaskellNone
LanguageHaskell2010

Web.Routes.Nested

Synopsis

Documentation

newtype HandlerT x m a Source

Constructors

HandlerT 

Fields

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

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

handle Source

Arguments

:: (Monad m, Functor m, cleanxs ~ OnlyJusts xs, HasResult childType (ActionT 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 childType m ())

Potential child routes

-> HandlerT 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 childType m () -> HandlerT result m () Source

notFound :: (Monad m, Functor m, cleanxs ~ OnlyJusts xs, HasResult childType (ActionT 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 childType m ()) -> HandlerT result m () Source

route Source

Arguments

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

Assembled handle calls

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

Turns a HandlerT into a Wai Application