From 56208f8b4f66adef4b99b11d7a0e3b4ede7bc1b2 Mon Sep 17 00:00:00 2001 From: Sediman Date: Fri, 29 May 2026 01:34:01 +0200 Subject: [PATCH] docs: document panic conditions in Handle, StaticFS, and Bind --- routergroup.go | 4 ++++ utils.go | 3 +++ 2 files changed, 7 insertions(+) diff --git a/routergroup.go b/routergroup.go index c01b917e..a4271e2c 100644 --- a/routergroup.go +++ b/routergroup.go @@ -100,6 +100,8 @@ func (group *RouterGroup) handle(httpMethod, relativePath string, handlers Handl // This function is intended for bulk loading and to allow the usage of less // frequently used, non-standardized or custom methods (e.g. for internal // communication with a proxy). +// +// Handle panics if httpMethod is not a valid HTTP method (uppercase ASCII letters only). func (group *RouterGroup) Handle(httpMethod, relativePath string, handlers ...HandlerFunc) IRoutes { if matched := regEnLetter.MatchString(httpMethod); !matched { panic("http method " + httpMethod + " is not valid") @@ -200,6 +202,8 @@ func (group *RouterGroup) Static(relativePath, root string) IRoutes { // StaticFS works just like `Static()` but a custom `http.FileSystem` can be used instead. // Gin by default uses: gin.Dir() +// +// StaticFS panics if relativePath contains URL parameters (: or *). func (group *RouterGroup) StaticFS(relativePath string, fs http.FileSystem) IRoutes { if strings.Contains(relativePath, ":") || strings.Contains(relativePath, "*") { panic("URL parameters can not be used when serving a static folder") diff --git a/utils.go b/utils.go index 2fecce46..2919f43c 100644 --- a/utils.go +++ b/utils.go @@ -26,6 +26,9 @@ const localhostIP = "127.0.0.1" const localhostIPv6 = "::1" // Bind is a helper function for given interface object and returns a Gin middleware. +// +// Bind panics if val is a pointer; pass the struct value directly +// (e.g., Use: gin.Bind(Struct{}) instead of gin.Bind(&Struct{})). func Bind(val any) HandlerFunc { value := reflect.ValueOf(val) if value.Kind() == reflect.Ptr {