File tree Expand file tree Collapse file tree 1 file changed +27
-0
lines changed Expand file tree Collapse file tree 1 file changed +27
-0
lines changed Original file line number Diff line number Diff line change 1+ package routing
2+
3+ type MiddlewareFunc func (handler Handler ) Handler
4+
5+ type Middleware interface {
6+ Middleware (handler Handler ) Handler
7+ Handle (ctx * Context , next Handler ) error
8+ }
9+
10+ func (m MiddlewareFunc ) Middleware (handler Handler ) Handler {
11+ return m (handler )
12+ }
13+
14+ func (r * Router ) Use (method string , middlewares ... interface {}) {
15+ for _ , middleware := range middlewares {
16+ if middlewareFunc , ok := middleware .(MiddlewareFunc ); ok {
17+ r .middlewares [method ] = append (r .middlewares [method ], middlewareFunc )
18+ } else if middleware , ok := middleware .(Middleware ); ok {
19+ r .middlewares [method ] = append (r .middlewares [method ], middleware )
20+ }
21+ }
22+ }
23+
24+ func (m MiddlewareFunc ) Handle (ctx * Context , next Handler ) error {
25+ h := m (next )
26+ return h (ctx )
27+ }
You can’t perform that action at this time.
0 commit comments