code: func rprintReqOrRep(w io.Writer, obj interface{}) {
  	rv := reflect.ValueOf(obj).Elem()
  	tv := rv.Type()
  	nf := tv.NumField()
  	printedColon := false
  	printComma := false
  	for i := 0; i < nf; i++ {
  		name := tv.Field(i).Name
  		if strings.Contains(name, "Secrets") {
  			continue
  		}
  		sv := fmt.Sprintf("%v", rv.Field(i).Interface())
  		if emptyValRX.MatchString(sv) {
  			continue
  		}
  		if printComma {
  			fmt.Fprintf(w, ", ")
  		}
  		if !printedColon {
  			fmt.Fprintf(w, ": ")
  			printedColon = true
  		}
  		printComma = true
  		fmt.Fprintf(w, "%s=%s", name, sv)
  	}
  }
docs: // rprintReqOrRep is used by the server-side interceptors that log
  // requests and responses.