code: func makeParams(rt reflect.Type, rv reflect.Value) []interface{} {
  	numFields := rt.NumField()
  	params := make([]interface{}, 0, numFields)
  	for i := 0; i < numFields; i++ {
  		rtf := rt.Field(i)
  		rvf := rv.Field(i)
  		if rtf.Type.Kind() == reflect.Ptr {
  			if rvf.IsNil() {
  				break
  			}
  			rvf.Elem()
  		}
  		params = append(params, rvf.Interface())
  	}
  
  	return params
  }
docs: // makeParams creates a slice of interface values for the given struct.