reroute-0.2.3.0: abstract implementation of typed and untyped web routing

Safe HaskellNone
LanguageHaskell2010

Web.Routing.AbstractRouter

Documentation

newtype RegistryT r middleware reqTypes m a Source

Constructors

RegistryT 

Fields

runRegistryT :: RWST (RoutePath r []) [middleware] (RegistryState r reqTypes) m a
 

Instances

Monad m => MonadWriter [middleware] (RegistryT r middleware reqTypes m) 
Monad m => MonadReader (RoutePath r ([] *)) (RegistryT r middleware reqTypes m) 
Monad m => MonadState (RegistryState r reqTypes) (RegistryT r middleware reqTypes m) 
MonadTrans (RegistryT r middleware reqTypes) 
Monad m => Monad (RegistryT r middleware reqTypes m) 
Functor m => Functor (RegistryT r middleware reqTypes m) 
(Monad m, Functor m) => Applicative (RegistryT r middleware reqTypes m) 
MonadIO m => MonadIO (RegistryT r middleware reqTypes m) 

data RegistryState r reqTypes Source

Constructors

RegistryState 

Fields

rs_registry :: HashMap reqTypes (Registry r)
 

Instances

Monad m => MonadState (RegistryState r reqTypes) (RegistryT r middleware reqTypes m) 

hookAny :: (Monad m, AbstractRouter r, Eq reqTypes, Hashable reqTypes) => reqTypes -> ([Text] -> RouteAppliedAction r) -> RegistryT r middleware reqTypes m () Source

hookRoute :: (Monad m, AbstractRouter r, Eq reqTypes, Hashable reqTypes) => reqTypes -> RoutePath r as -> RouteAction r as -> RegistryT r middleware reqTypes m () Source

middleware :: Monad m => middleware -> RegistryT r middleware reqTypes m () Source

subcomponent :: (Monad m, AbstractRouter r) => RoutePath r [] -> RegistryT r middleware reqTypes m a -> RegistryT r middleware reqTypes m a Source

runRegistry :: (Monad m, AbstractRouter r, Hashable reqTypes, Eq reqTypes) => r -> RegistryT r middleware reqTypes m a -> m (a, reqTypes -> [Text] -> [(ParamMap, RouteAppliedAction r)], [middleware]) Source