Module Sihl__.Web

type meth =
| Get
| Head
| Options
| Post
| Put
| Patch
| Delete
| Any
type handler = Rock.Request.t -> Rock.Response.t Lwt.t
type route = meth * string * handler
type router = {
scope : string;
routes : route list;
middlewares : Rock.Middleware.t list;
}
val trailing_char : string -> string option
val tail : string -> string
val prefix : string -> route -> meth * string * handler
val apply_middleware_stack : Rock.Middleware.t list -> route -> meth * string * Rock__.Handler.t
val get : string -> ?⁠middlewares:Rock.Middleware.t list -> handler -> router
val head : string -> ?⁠middlewares:Rock.Middleware.t list -> handler -> router
val options : string -> ?⁠middlewares:Rock.Middleware.t list -> handler -> router
val post : string -> ?⁠middlewares:Rock.Middleware.t list -> handler -> router
val put : string -> ?⁠middlewares:Rock.Middleware.t list -> handler -> router
val patch : string -> ?⁠middlewares:Rock.Middleware.t list -> handler -> router
val delete : string -> ?⁠middlewares:Rock.Middleware.t list -> handler -> router
val any : string -> ?⁠middlewares:Rock.Middleware.t list -> handler -> router
val routes_of_router : router -> route list
val choose : ?⁠scope:string -> ?⁠middlewares:Rock.Middleware.t list -> router list -> router
val externalize_path : ?⁠prefix:Stdlib.String.t -> string -> string
val style : string