Improved test coverage

This commit is contained in:
Eduard Urbach 2023-09-06 16:52:22 +02:00
parent 763686679f
commit 0323126f2c
Signed by: eduard
GPG key ID: 49226B848C78F6C8
5 changed files with 80 additions and 71 deletions

View file

@ -1,7 +1,5 @@
package router
import "os"
// Router is a high-performance router.
type Router[T any] struct {
get Tree[T]
@ -46,23 +44,17 @@ func (router *Router[T]) LookupNoAlloc(method string, path string, addParameter
return tree.LookupNoAlloc(path, addParameter)
}
// Bind traverses all trees and calls the given function on every node.
func (router *Router[T]) Bind(transform func(T) T) {
router.get.Bind(transform)
router.post.Bind(transform)
router.delete.Bind(transform)
router.put.Bind(transform)
router.patch.Bind(transform)
router.head.Bind(transform)
router.connect.Bind(transform)
router.trace.Bind(transform)
router.options.Bind(transform)
}
// Print shows a pretty print of all the routes.
func (router *Router[T]) Print(method string) {
tree := router.selectTree(method)
tree.root.PrettyPrint(os.Stdout)
// Map traverses all trees and calls the given function on every node.
func (router *Router[T]) Map(transform func(T) T) {
router.get.Map(transform)
router.post.Map(transform)
router.delete.Map(transform)
router.put.Map(transform)
router.patch.Map(transform)
router.head.Map(transform)
router.connect.Map(transform)
router.trace.Map(transform)
router.options.Map(transform)
}
// selectTree returns the tree by the given HTTP method.