method/verb.go
func HTTP(h http.Handler, verb Verb, verbs ...Verb) http.Handler {
	verbSet := map[Verb]struct{}{verb: struct{}{}}
	for _, v := range verbs {
		verbSet[v] = struct{}{}
	}

	return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
		if _, ok := verbSet[Verb(r.Method)]; ok {
			h.ServeHTTP(w, r)
		} else {
			w.WriteHeader(http.StatusBadRequest)
		}
	})
}
func HTTP(h http.Handler, verb Verb, verbs ...Verb) http.Handler {
	verbSet := map[Verb]struct{}{verb: struct{}{}}
	for _, v := range verbs {
		verbSet[v] = struct{}{}
	}

	return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
		if _, ok := verbSet[Verb(r.Method)]; ok {
			h.ServeHTTP(w, r)
		} else {
			w.WriteHeader(http.StatusBadRequest)
		}
	})
}
// HTTP returns a handler that will check each request's method against a
// predefined whitelist. If the request's method is not part of the list,
// the response will be a 400 Bad Request.