package httperr import "net/http" // The HandlerFunc type is an adapter to allow the use of // ordinary functions as HTTP handlers. If f is a function // with the appropriate signature, HandlerFunc(f) is a // Handler object that calls f. type HandlerFunc func(http.ResponseWriter, *http.Request) error // ServeHTTP calls f(w, r). func (f HandlerFunc) ServeHTTP(w http.ResponseWriter, r *http.Request) { if err := f(w, r); err != nil { if v := r.Context().Value(onErrorIndex); v != nil { v.(func(error))(err) } else { Write(w, r, err) } } }