code: func (f *httpHandlerFunc) Serve(ctx context.Context, in io.Reader, out io.Writer) {
  	reqURL := "http://localhost/invoke"
  	reqMethod := "POST"
  	if ctx, ok := GetContext(ctx).(HTTPContext); ok {
  		reqURL = ctx.RequestURL()
  		reqMethod = ctx.RequestMethod()
  	}
  
  	req, err := http.NewRequest(reqMethod, reqURL, in)
  	if err != nil {
  		panic("cannot re-create request from context")
  	}
  
  	req.Header = GetContext(ctx).Header()
  	req = req.WithContext(ctx)
  
  	rw, ok := out.(http.ResponseWriter)
  	if !ok {
  		panic("output is not a response writer, this was poorly planned please yell at me")
  	}
  
  	f.ServeHTTP(rw, req)
  }
docs: // Serve implements Handler