reroute-0.6.0.0: abstract implementation of typed and untyped web routing
Safe HaskellNone
LanguageHaskell2010

Web.Routing.Router

Documentation

newtype RegistryT n b middleware reqTypes (m :: * -> *) a Source #

Constructors

RegistryT 

Fields

Instances

Instances details
Monad m => MonadWriter [middleware] (RegistryT n b middleware reqTypes m) Source # 
Instance details

Defined in Web.Routing.Router

Methods

writer :: (a, [middleware]) -> RegistryT n b middleware reqTypes m a #

tell :: [middleware] -> RegistryT n b middleware reqTypes m () #

listen :: RegistryT n b middleware reqTypes m a -> RegistryT n b middleware reqTypes m (a, [middleware]) #

pass :: RegistryT n b middleware reqTypes m (a, [middleware] -> [middleware]) -> RegistryT n b middleware reqTypes m a #

Monad m => MonadReader (PathInternal ('[] :: [Type])) (RegistryT n b middleware reqTypes m) Source # 
Instance details

Defined in Web.Routing.Router

Methods

ask :: RegistryT n b middleware reqTypes m (PathInternal '[]) #

local :: (PathInternal '[] -> PathInternal '[]) -> RegistryT n b middleware reqTypes m a -> RegistryT n b middleware reqTypes m a #

reader :: (PathInternal '[] -> a) -> RegistryT n b middleware reqTypes m a #

Monad m => MonadState (RegistryState n b reqTypes) (RegistryT n b middleware reqTypes m) Source # 
Instance details

Defined in Web.Routing.Router

Methods

get :: RegistryT n b middleware reqTypes m (RegistryState n b reqTypes) #

put :: RegistryState n b reqTypes -> RegistryT n b middleware reqTypes m () #

state :: (RegistryState n b reqTypes -> (a, RegistryState n b reqTypes)) -> RegistryT n b middleware reqTypes m a #

MonadTrans (RegistryT n b middleware reqTypes) Source # 
Instance details

Defined in Web.Routing.Router

Methods

lift :: Monad m => m a -> RegistryT n b middleware reqTypes m a #

Monad m => Monad (RegistryT n b middleware reqTypes m) Source # 
Instance details

Defined in Web.Routing.Router

Methods

(>>=) :: RegistryT n b middleware reqTypes m a -> (a -> RegistryT n b middleware reqTypes m b0) -> RegistryT n b middleware reqTypes m b0 #

(>>) :: RegistryT n b middleware reqTypes m a -> RegistryT n b middleware reqTypes m b0 -> RegistryT n b middleware reqTypes m b0 #

return :: a -> RegistryT n b middleware reqTypes m a #

Functor m => Functor (RegistryT n b middleware reqTypes m) Source # 
Instance details

Defined in Web.Routing.Router

Methods

fmap :: (a -> b0) -> RegistryT n b middleware reqTypes m a -> RegistryT n b middleware reqTypes m b0 #

(<$) :: a -> RegistryT n b middleware reqTypes m b0 -> RegistryT n b middleware reqTypes m a #

Monad m => Applicative (RegistryT n b middleware reqTypes m) Source # 
Instance details

Defined in Web.Routing.Router

Methods

pure :: a -> RegistryT n b middleware reqTypes m a #

(<*>) :: RegistryT n b middleware reqTypes m (a -> b0) -> RegistryT n b middleware reqTypes m a -> RegistryT n b middleware reqTypes m b0 #

liftA2 :: (a -> b0 -> c) -> RegistryT n b middleware reqTypes m a -> RegistryT n b middleware reqTypes m b0 -> RegistryT n b middleware reqTypes m c #

(*>) :: RegistryT n b middleware reqTypes m a -> RegistryT n b middleware reqTypes m b0 -> RegistryT n b middleware reqTypes m b0 #

(<*) :: RegistryT n b middleware reqTypes m a -> RegistryT n b middleware reqTypes m b0 -> RegistryT n b middleware reqTypes m a #

MonadIO m => MonadIO (RegistryT n b middleware reqTypes m) Source # 
Instance details

Defined in Web.Routing.Router

Methods

liftIO :: IO a -> RegistryT n b middleware reqTypes m a #

data RegistryState n b reqTypes Source #

Constructors

RegistryState 

Fields

Instances

Instances details
Monad m => MonadState (RegistryState n b reqTypes) (RegistryT n b middleware reqTypes m) Source # 
Instance details

Defined in Web.Routing.Router

Methods

get :: RegistryT n b middleware reqTypes m (RegistryState n b reqTypes) #

put :: RegistryState n b reqTypes -> RegistryT n b middleware reqTypes m () #

state :: (RegistryState n b reqTypes -> (a, RegistryState n b reqTypes)) -> RegistryT n b middleware reqTypes m a #

hookAny :: (Monad m, Eq reqTypes, Hashable reqTypes) => reqTypes -> ([Text] -> n b) -> RegistryT n b middleware reqTypes m () Source #

hookAnyMethod :: Monad m => ([Text] -> n b) -> RegistryT n b middleware reqTypes m () Source #

hookRoute :: (Monad m, Eq reqTypes, Hashable reqTypes) => reqTypes -> PathInternal as -> HVectElim' (n b) as -> RegistryT n b middleware reqTypes m () Source #

hookRouteAnyMethod :: Monad m => PathInternal as -> HVectElim' (n b) as -> RegistryT n b middleware reqTypes m () Source #

middleware :: Monad m => middleware -> RegistryT n b middleware reqTypes m () Source #

swapMonad :: Monad m => (forall b. n b -> m b) -> RegistryT x y middleware reqTypes n a -> RegistryT x y middleware reqTypes m a Source #

runRegistry :: (Monad m, Hashable reqTypes, Eq reqTypes) => RegistryT n b middleware reqTypes m a -> m (a, reqTypes -> [Text] -> [n b], [middleware]) Source #