1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
type handler = Core.Ctx.t -> Res.t Lwt.t [@@deriving show]
let equal_handler _ _ = true
type meth = Get | Post | Put | Delete | All [@@deriving show, eq]
type t = meth * string * handler [@@deriving show, eq]
let meth (meth, _, _) = meth
let path (_, path, _) = path
let handler (_, _, handler) = handler
let set_handler handler (meth, path, _) = (meth, path, handler)
let get path handler = (Get, path, handler)
let post path handler = (Post, path, handler)
let put path handler = (Put, path, handler)
let delete path handler = (Delete, path, handler)
let all path handler = (All, path, handler)
let prefix prefix (meth, path, handler) = (meth, prefix ^ path, handler)