code: func Values(cols []string, v interface{}) ([]interface{}, error) {
  	vals := make([]interface{}, len(cols))
  	model, err := reflectValue(v)
  	if err != nil {
  		return nil, fmt.Errorf("values: %v", err)
  	}
  
  	fields := loadFields(model)
  
  	for i, col := range cols {
  		j, ok := fields[col]
  		if !ok {
  			return nil, fmt.Errorf("field %T.%q either does not exist or is unexported", v, col)
  		}
  
  		vals[i] = model.Field(j).Interface()
  	}
  	return vals, nil
  }
docs: // Values scans a struct and returns the values associated with the columns
  // provided. Only simple value types are supported (i.e. Bool, Ints, Uints,
  // Floats, Interface, String)