func OPTIONS(relativePath, routeName string, handlers ...gin.HandlerFunc) gin.IRoutes {
	return engine().OPTIONS(relativePath, routeName, handlers...)
}
OPTIONS is a shortcut for router.Handle("OPTIONS", path, handle)
package ginS
import (
	"html/template"
	"net/http"
	"sync"
	"github.com/abulo/ratel/v2/gin"
)
var once sync.Once
var internalEngine *gin.Engine
func engine() *gin.Engine {
	once.Do(func() {
		internalEngine = gin.Default()
	})
	return internalEngine
}
func LoadHTMLGlob(pattern string) {
	engine().LoadHTMLGlob(pattern)
}
func LoadHTMLFiles(files ...string) {
	engine().LoadHTMLFiles(files...)
}
func SetHTMLTemplate(templ *template.Template) {
	engine().SetHTMLTemplate(templ)
}
func NoRoute(handlers ...gin.HandlerFunc) {
	engine().NoRoute(handlers...)
}
func NoMethod(handlers ...gin.HandlerFunc) {
	engine().NoMethod(handlers...)
}
func Group(relativePath string, handlers ...gin.HandlerFunc) *gin.RouterGroup {
	return engine().Group(relativePath, handlers...)
}
func Handle(httpMethod, relativePath, routeName string, handlers ...gin.HandlerFunc) gin.IRoutes {
	return engine().Handle(httpMethod, relativePath, routeName, handlers...)
}
func POST(relativePath, routeName string, handlers ...gin.HandlerFunc) gin.IRoutes {
	return engine().POST(relativePath, routeName, handlers...)
}
func GET(relativePath, routeName string, handlers ...gin.HandlerFunc) gin.IRoutes {
	return engine().GET(relativePath, routeName, handlers...)
}
func DELETE(relativePath, routeName string, handlers ...gin.HandlerFunc) gin.IRoutes {
	return engine().DELETE(relativePath, routeName, handlers...)
}
func PATCH(relativePath, routeName string, handlers ...gin.HandlerFunc) gin.IRoutes {
	return engine().PATCH(relativePath, routeName, handlers...)
}
func PUT(relativePath, routeName string, handlers ...gin.HandlerFunc) gin.IRoutes {
	return engine().PUT(relativePath, routeName, handlers...)
}