func SetError(r *http.Request, err error) {
	ctx := Context(r)
	ctx.SetError(err)
}
SetError is a helper function to set the error in webgo context
package webgo
import (
	"context"
	"crypto/tls"
	"net/http"
)
var supportedHTTPMethods = []string{
	http.MethodOptions,
	http.MethodHead,
	http.MethodGet,
	http.MethodPost,
	http.MethodPut,
	http.MethodPatch,
	http.MethodDelete,
}
type ctxkey string
const wgoCtxKey = ctxkey("webgocontext")
type ContextPayload struct {
	Route *Route
	Err   error
	path  string
}
func (cp *ContextPayload) Params() map[string]string {
	return cp.Route.params(cp.path)
}
func (cp *ContextPayload) reset() {
	cp.Route = nil
	cp.path = ""
	cp.Err = nil
}
func (cp *ContextPayload) SetError(err error) {
	cp.Err = err
}
func (cp *ContextPayload) Error() error {
	return cp.Err
}
func Context(r *http.Request) *ContextPayload {
	return r.Context().Value(wgoCtxKey).(*ContextPayload)
}