Fix handler visibility
This commit is contained in:
parent
0c5f1081ab
commit
9dbfbee993
14
router.go
14
router.go
@ -16,6 +16,20 @@ type Handler interface {
|
||||
Serve(params []string)
|
||||
}
|
||||
|
||||
// SimpleHandler implements the Handler interface
|
||||
type SimpleHandler struct {
|
||||
fn func(params []string)
|
||||
}
|
||||
|
||||
func (h *SimpleHandler) Serve(params []string) {
|
||||
h.fn(params)
|
||||
}
|
||||
|
||||
// NewHandler creates a Handler from a function
|
||||
func NewHandler(fn func(params []string)) Handler {
|
||||
return &SimpleHandler{fn: fn}
|
||||
}
|
||||
|
||||
// Middleware wraps a handler with additional functionality.
|
||||
type Middleware func(Handler) Handler
|
||||
|
||||
|
@ -8,20 +8,6 @@ import (
|
||||
assert "git.sharkk.net/Go/Assert"
|
||||
)
|
||||
|
||||
// simpleHandler implements the Handler interface
|
||||
type simpleHandler struct {
|
||||
fn func(params []string)
|
||||
}
|
||||
|
||||
func (h *simpleHandler) Serve(params []string) {
|
||||
h.fn(params)
|
||||
}
|
||||
|
||||
// newHandler creates a simple Handler from a function
|
||||
func newHandler(fn func(params []string)) Handler {
|
||||
return &simpleHandler{fn: fn}
|
||||
}
|
||||
|
||||
func TestRootPath(t *testing.T) {
|
||||
r := New()
|
||||
r.Get("/", func(w Res, r Req, params []string) {
|
||||
@ -196,7 +182,7 @@ func TestMiddleware(t *testing.T) {
|
||||
executed := false
|
||||
|
||||
r.Use(func(next Handler) Handler {
|
||||
return newHandler(func(params []string) {
|
||||
return NewHandler(func(params []string) {
|
||||
executed = true
|
||||
next.Serve(params)
|
||||
})
|
||||
@ -217,7 +203,7 @@ func TestMiddleware(t *testing.T) {
|
||||
order := []int{}
|
||||
|
||||
r.Use(func(next Handler) Handler {
|
||||
return newHandler(func(params []string) {
|
||||
return NewHandler(func(params []string) {
|
||||
order = append(order, 1)
|
||||
next.Serve(params)
|
||||
order = append(order, 4)
|
||||
@ -225,7 +211,7 @@ func TestMiddleware(t *testing.T) {
|
||||
})
|
||||
|
||||
r.Use(func(next Handler) Handler {
|
||||
return newHandler(func(params []string) {
|
||||
return NewHandler(func(params []string) {
|
||||
order = append(order, 2)
|
||||
next.Serve(params)
|
||||
order = append(order, 3)
|
||||
@ -255,7 +241,7 @@ func TestMiddleware(t *testing.T) {
|
||||
executed := false
|
||||
|
||||
middleware := func(next Handler) Handler {
|
||||
return newHandler(func(params []string) {
|
||||
return NewHandler(func(params []string) {
|
||||
executed = true
|
||||
next.Serve(params)
|
||||
})
|
||||
@ -304,7 +290,7 @@ func TestGroup(t *testing.T) {
|
||||
// Create group with middleware
|
||||
api := r.Group("/api")
|
||||
api.Use(func(next Handler) Handler {
|
||||
return newHandler(func(params []string) {
|
||||
return NewHandler(func(params []string) {
|
||||
executed = true
|
||||
next.Serve(params)
|
||||
})
|
||||
@ -325,7 +311,7 @@ func TestGroup(t *testing.T) {
|
||||
// Create group with middleware
|
||||
api := r.Group("/api")
|
||||
api.Use(func(next Handler) Handler {
|
||||
return newHandler(func(params []string) {
|
||||
return NewHandler(func(params []string) {
|
||||
order = append(order, 1)
|
||||
next.Serve(params)
|
||||
})
|
||||
@ -334,7 +320,7 @@ func TestGroup(t *testing.T) {
|
||||
// Create nested group with additional middleware
|
||||
v1 := api.Group("/v1")
|
||||
v1.Use(func(next Handler) Handler {
|
||||
return newHandler(func(params []string) {
|
||||
return NewHandler(func(params []string) {
|
||||
order = append(order, 2)
|
||||
next.Serve(params)
|
||||
})
|
||||
@ -362,7 +348,7 @@ func TestGroup(t *testing.T) {
|
||||
// Create group with middleware
|
||||
api := r.Group("/api")
|
||||
api.Use(func(next Handler) Handler {
|
||||
return newHandler(func(params []string) {
|
||||
return NewHandler(func(params []string) {
|
||||
order = append(order, 1)
|
||||
next.Serve(params)
|
||||
})
|
||||
@ -370,7 +356,7 @@ func TestGroup(t *testing.T) {
|
||||
|
||||
// Add route with specific middleware
|
||||
api.WithMiddleware(func(next Handler) Handler {
|
||||
return newHandler(func(params []string) {
|
||||
return NewHandler(func(params []string) {
|
||||
order = append(order, 2)
|
||||
next.Serve(params)
|
||||
})
|
||||
@ -479,7 +465,7 @@ func BenchmarkWildcardLookup(b *testing.B) {
|
||||
|
||||
func BenchmarkMiddleware(b *testing.B) {
|
||||
passthrough := func(next Handler) Handler {
|
||||
return newHandler(func(params []string) {
|
||||
return NewHandler(func(params []string) {
|
||||
next.Serve(params)
|
||||
})
|
||||
}
|
||||
@ -509,7 +495,7 @@ func BenchmarkMiddleware(b *testing.B) {
|
||||
|
||||
b.Run("five_middleware", func(b *testing.B) {
|
||||
r := New()
|
||||
for i := 0; i < 5; i++ {
|
||||
for range 5 {
|
||||
r.Use(passthrough)
|
||||
}
|
||||
r.Get("/test", func(w Res, r Req, params []string) {})
|
||||
@ -551,7 +537,7 @@ func BenchmarkGroups(b *testing.B) {
|
||||
r := New()
|
||||
api := r.Group("/api")
|
||||
api.Use(func(next Handler) Handler {
|
||||
return newHandler(func(params []string) {
|
||||
return NewHandler(func(params []string) {
|
||||
next.Serve(params)
|
||||
})
|
||||
})
|
||||
|
Loading…
x
Reference in New Issue
Block a user