reroute-0.4.1.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

Monad m => MonadReader (PathInternal ([] *)) (RegistryT n b middleware reqTypes m) Source # 

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 => MonadWriter [middleware] (RegistryT n b middleware reqTypes m) Source # 

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 => MonadState (RegistryState n b reqTypes) (RegistryT n b middleware reqTypes m) Source # 

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 # 

Methods

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

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

Methods

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

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

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

fail :: String -> RegistryT n b middleware reqTypes m a #

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

Methods

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

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

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

Methods

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

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

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

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

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

Methods

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

data RegistryState n b reqTypes Source #

Constructors

RegistryState 

Fields

Instances

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

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 #

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

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

subcomponent :: Monad m => PathInternal '[] -> RegistryT n b middleware reqTypes m a -> RegistryT n b middleware reqTypes m a 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 #