-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathhandlers.go
51 lines (37 loc) · 1013 Bytes
/
handlers.go
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
package ergo
var (
DefNotFoundHandler Handler
DefMethodNotAllowedFunc MethodNotAllowedFunc = MethodNotAllowedFunc(methodNotAllowedFunc)
DefErrHandler ErrHandler
DefPanicHandler Handler
)
type Handler interface {
ServeHTTP(*Context)
}
type HandlerFunc func(*Context)
func (f HandlerFunc) ServeHTTP(ctx *Context) {
f(ctx)
}
type NoCtxHandlerFunc func(*Response, *Request)
func (f NoCtxHandlerFunc) ServeHTTP(ctx *Context) {
f(ctx.Response, ctx.Request)
}
type Middleware interface {
Run(Handler) Handler
}
type MiddlewareFunc func(Handler) Handler
func (f MiddlewareFunc) Run(h Handler) Handler {
return f(h)
}
type MethodNotAllowedFunc func(Router) Handler
func methodNotAllowedFunc(r Router) Handler {
return HandlerFunc(func(ctx *Context) {
})
}
type ErrHandler interface {
ServeHTTP(error, *Response, *Request)
}
type ErrHandlerFunc func(error, *Response, *Request)
func (f ErrHandlerFunc) ServeHTTP(err error, res *Response, req *Request) {
f(err, res, req)
}