From 2a94dc114edf86a9557f4aa9abdf17925255ae02 Mon Sep 17 00:00:00 2001 From: Eduard Urbach Date: Tue, 18 Jul 2023 17:14:34 +0200 Subject: [PATCH] Changed generic type constraint --- Router.go | 4 ++-- Tree.go | 8 ++------ go.mod | 2 +- go.sum | 4 ++-- 4 files changed, 7 insertions(+), 11 deletions(-) diff --git a/Router.go b/Router.go index 1a3cb92..bbed698 100644 --- a/Router.go +++ b/Router.go @@ -3,7 +3,7 @@ package router import "os" // Router is a high-performance router. -type Router[T comparable] struct { +type Router[T any] struct { get Tree[T] post Tree[T] delete Tree[T] @@ -16,7 +16,7 @@ type Router[T comparable] struct { } // New creates a new router containing trees for every HTTP method. -func New[T comparable]() *Router[T] { +func New[T any]() *Router[T] { return &Router[T]{} } diff --git a/Tree.go b/Tree.go index 7ed04b6..83a67e3 100644 --- a/Tree.go +++ b/Tree.go @@ -15,7 +15,7 @@ const ( ) // Tree represents a radix tree. -type Tree[T comparable] struct { +type Tree[T any] struct { root treeNode[T] static map[string]T canBeStatic [2048]bool @@ -238,12 +238,8 @@ begin: // Bind binds all handlers to a new one provided by the callback. func (tree *Tree[T]) Bind(transform func(T) T) { - var empty T - tree.root.each(func(node *treeNode[T]) { - if node.data != empty { - node.data = transform(node.data) - } + node.data = transform(node.data) }) for key, value := range tree.static { diff --git a/go.mod b/go.mod index e76827a..d40e368 100644 --- a/go.mod +++ b/go.mod @@ -2,4 +2,4 @@ module git.akyoto.dev/go/router go 1.20 -require git.akyoto.dev/go/assert v0.1.1 +require git.akyoto.dev/go/assert v0.1.2 diff --git a/go.sum b/go.sum index a8eadc3..33f82ea 100644 --- a/go.sum +++ b/go.sum @@ -1,2 +1,2 @@ -git.akyoto.dev/go/assert v0.1.1 h1:F0IO7RxXVfV86Y7bwLsd+C5Ar3X0XCJIuywyiCrk8ms= -git.akyoto.dev/go/assert v0.1.1/go.mod h1:Zr/UFuiqmqRmFFgpBGwF71jbzb6iYJfXFeePYHGtWsg= +git.akyoto.dev/go/assert v0.1.2 h1:3paz/5z/JcGK/2K9J+pVh5Jwt2gYfJQG+P5OE9/jB7Y= +git.akyoto.dev/go/assert v0.1.2/go.mod h1:Zr/UFuiqmqRmFFgpBGwF71jbzb6iYJfXFeePYHGtWsg=