-- | -- This module exposes more of the inner workings of route construction for extensiblity and direct access. -- You may need interfaces like 'IsMethod' or 'QueryParams' to add support for a new web framework, for example. -- In particular, functions like 'foldRoute' and 'pathValues' can be used to extract low-level information about individual routes. module Web.Route.Invertible.Internal ( -- * General RouteString(..) , Placeholder(..) , PlaceholderValue(..) , Sequence(..) -- * Path , Path(..) , normalizePath , pathValues , renderPath , urlPathBuilder -- * Host , Host(..) , splitHost , joinHost , renderHost -- * Method , IsMethod(..) -- * Query , QueryParams , paramsQuerySimple , simpleQueryParams -- * Route , blankRequest , RoutePredicate(..) , Route(..) , requestRoutePredicate , normRoute , foldRoute , requestRoute' , requestRoute ) where import Web.Route.Invertible.String import Web.Route.Invertible.Placeholder import Web.Route.Invertible.Sequence import Web.Route.Invertible.Host import Web.Route.Invertible.Path import Web.Route.Invertible.Method import Web.Route.Invertible.Query import Web.Route.Invertible.Request import Web.Route.Invertible.Route