| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Web.Routing.Router
Synopsis
- newtype RegistryT (n :: Type -> Type) b middleware reqTypes (m :: Type -> Type) a = RegistryT {
- runRegistryT :: RWST (PathInternal ('[] :: [Type])) [middleware] (RegistryState n b reqTypes) m a
- data RegistryState (n :: Type -> Type) b reqTypes = RegistryState {
- rs_registry :: !(HashMap reqTypes (Registry n b))
- rs_anyMethod :: !(Registry n b)
- rs_slashPolicy :: !SlashPolicy
- hookAny :: forall (m :: Type -> Type) reqTypes n b middleware. (Monad m, Eq reqTypes, Hashable reqTypes) => reqTypes -> ([Text] -> n b) -> RegistryT n b middleware reqTypes m ()
- hookAnyMethod :: forall (m :: Type -> Type) n b middleware reqTypes. Monad m => ([Text] -> n b) -> RegistryT n b middleware reqTypes m ()
- hookRoute :: forall (m :: Type -> Type) reqTypes (as :: [Type]) n b middleware. (Monad m, Eq reqTypes, Hashable reqTypes) => reqTypes -> PathInternal as -> HVectElim' (n b) as -> RegistryT n b middleware reqTypes m ()
- hookRouteAnyMethod :: forall (m :: Type -> Type) (as :: [Type]) n b middleware reqTypes. Monad m => PathInternal as -> HVectElim' (n b) as -> RegistryT n b middleware reqTypes m ()
- middleware :: forall (m :: Type -> Type) middleware (n :: Type -> Type) b reqTypes. Monad m => middleware -> RegistryT n b middleware reqTypes m ()
- swapMonad :: forall m n (x :: Type -> Type) y middleware reqTypes a. Monad m => (forall b. n b -> m b) -> RegistryT x y middleware reqTypes n a -> RegistryT x y middleware reqTypes m a
- runRegistry :: (Monad m, Hashable reqTypes, Eq reqTypes) => RegistryT n b middleware reqTypes m a -> m (a, reqTypes -> [Text] -> [n b], [middleware])
- runRegistryWith :: (Monad m, Hashable reqTypes, Eq reqTypes) => SlashPolicy -> RegistryT n b middleware reqTypes m a -> m (a, reqTypes -> [Text] -> [n b], [middleware])
Documentation
newtype RegistryT (n :: Type -> Type) b middleware reqTypes (m :: Type -> Type) a Source #
Constructors
| RegistryT | |
Fields
| |
Instances
| Monad m => MonadReader (PathInternal ('[] :: [Type])) (RegistryT n b middleware reqTypes m) Source # | |
Defined in Web.Routing.Router Methods ask :: RegistryT n b middleware reqTypes m (PathInternal ('[] :: [Type])) local :: (PathInternal ('[] :: [Type]) -> PathInternal ('[] :: [Type])) -> RegistryT n b middleware reqTypes m a -> RegistryT n b middleware reqTypes m a reader :: (PathInternal ('[] :: [Type]) -> a) -> RegistryT n b middleware reqTypes m a | |
| Monad m => MonadWriter [middleware] (RegistryT n b middleware reqTypes m) Source # | |
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 => MonadState (RegistryState n b reqTypes) (RegistryT n b middleware reqTypes m) Source # | |
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 # | |
Defined in Web.Routing.Router | |
| Monad m => Applicative (RegistryT n b middleware reqTypes m) Source # | |
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 | |
| Functor m => Functor (RegistryT n b middleware reqTypes m) Source # | |
Defined in Web.Routing.Router | |
| Monad m => Monad (RegistryT n b middleware reqTypes m) Source # | |
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 | |
| MonadIO m => MonadIO (RegistryT n b middleware reqTypes m) Source # | |
Defined in Web.Routing.Router | |
data RegistryState (n :: Type -> Type) b reqTypes Source #
Constructors
| RegistryState | |
Fields
| |
Instances
| Monad m => MonadState (RegistryState n b reqTypes) (RegistryT n b middleware reqTypes m) Source # | |
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 :: forall (m :: Type -> Type) reqTypes n b middleware. (Monad m, Eq reqTypes, Hashable reqTypes) => reqTypes -> ([Text] -> n b) -> RegistryT n b middleware reqTypes m () Source #
hookAnyMethod :: forall (m :: Type -> Type) n b middleware reqTypes. Monad m => ([Text] -> n b) -> RegistryT n b middleware reqTypes m () Source #
hookRoute :: forall (m :: Type -> Type) reqTypes (as :: [Type]) n b middleware. (Monad m, Eq reqTypes, Hashable reqTypes) => reqTypes -> PathInternal as -> HVectElim' (n b) as -> RegistryT n b middleware reqTypes m () Source #
hookRouteAnyMethod :: forall (m :: Type -> Type) (as :: [Type]) n b middleware reqTypes. Monad m => PathInternal as -> HVectElim' (n b) as -> RegistryT n b middleware reqTypes m () Source #
middleware :: forall (m :: Type -> Type) middleware (n :: Type -> Type) b reqTypes. Monad m => middleware -> RegistryT n b middleware reqTypes m () Source #
swapMonad :: forall m n (x :: Type -> Type) y middleware reqTypes a. 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 #
runRegistryWith :: (Monad m, Hashable reqTypes, Eq reqTypes) => SlashPolicy -> RegistryT n b middleware reqTypes m a -> m (a, reqTypes -> [Text] -> [n b], [middleware]) Source #
Run a registry using the selected slash policy for both definitions and incoming path pieces. Pass decoded pieces without the initial path separator.