| Safe Haskell | None |
|---|
Web.Routing.AbstractRouter
Documentation
class AbstractRouter r whereSource
Associated Types
data RoutePath r :: [*] -> *Source
type RouteAction r :: [*] -> *Source
type RouteAppliedAction r Source
Methods
subcompCombine :: RoutePath r `[]` -> RoutePath r as -> RoutePath r asSource
emptyRegistry :: Registry rSource
rootPath :: RoutePath r `[]`Source
defRoute :: RoutePath r as -> RouteAction r as -> Registry r -> Registry rSource
matchRoute :: Registry r -> [Text] -> [(ParamMap, RouteAppliedAction r)]Source
Instances
| AbstractRouter (SafeRouter m a) | |
| AbstractRouter (TextRouter m a) |
type ParamMap = HashMap CaptureVar TextSource
newtype CaptureVar Source
Constructors
| CaptureVar | |
Fields
| |
Instances
| Eq CaptureVar | |
| Show CaptureVar | |
| Hashable CaptureVar |
newtype RegistryT r middleware reqTypes m a Source
Constructors
| RegistryT | |
Fields
| |
Instances
| Monad m => MonadWriter [middleware] (RegistryT r middleware reqTypes m) | |
| Monad m => MonadState (RegistryState r reqTypes) (RegistryT r middleware reqTypes m) | |
| Monad m => MonadReader (RoutePath r ([] *)) (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
| |
Instances
| Monad m => MonadState (RegistryState r reqTypes) (RegistryT r middleware reqTypes m) |
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 aSource
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