From 0762d9311b902195e08ec3f2b39ef229fe2b3a99 Mon Sep 17 00:00:00 2001 From: mountain Date: Tue, 5 Sep 2023 13:52:03 +0900 Subject: [PATCH] =?UTF-8?q?receiverName=EC=9D=84=20=EC=9D=B8=EC=9E=90?= =?UTF-8?q?=EB=A1=9C=20=EB=B0=9B=EC=9D=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/server.go b/server.go index 9373d5e..94bd098 100644 --- a/server.go +++ b/server.go @@ -613,11 +613,13 @@ type HttpApiReceiver struct { methods map[string]apiFuncType } -func MakeHttpApiReceiver[T any](receiver *T) HttpApiReceiver { +func MakeHttpApiReceiver[T any](receiver *T, receiverName string) HttpApiReceiver { methods := make(map[string]apiFuncType) tp := reflect.TypeOf(receiver) - name := tp.Elem().Name() + if len(receiverName) == 0 { + receiverName = tp.Elem().Name() + } writerType := reflect.TypeOf((*http.ResponseWriter)(nil)).Elem() for i := 0; i < tp.NumMethod(); i++ { method := tp.Method(i) @@ -646,7 +648,7 @@ func MakeHttpApiReceiver[T any](receiver *T) HttpApiReceiver { p1 := unsafe.Pointer(&funcptr) p2 := unsafe.Pointer(&p1) testfunc := (*func(*T, http.ResponseWriter, *http.Request))(p2) - methods[name+"."+method.Name] = func(w http.ResponseWriter, r *http.Request) { + methods[receiverName+"."+method.Name] = func(w http.ResponseWriter, r *http.Request) { (*testfunc)(receiver, w, r) } }