// UniqueItems validates that the provided slice has unique elements func UniqueItems(path, in string, data interface{}) *errors.Validation { val := reflect.ValueOf(data) if val.Kind() != reflect.Slice { return nil } var unique []interface{} for i := 0; i < val.Len(); i++ { v := val.Index(i).Interface() for _, u := range unique { if reflect.DeepEqual(v, u) { return errors.DuplicateItems(path, in) } } unique = append(unique, v) } return nil }
func duplicatesError(param *spec.Parameter) *errors.Validation { return errors.DuplicateItems(param.Name, param.In) }
func duplicatesErrorItems(path, in string) *errors.Validation { return errors.DuplicateItems(path, in) }