feat: use a map for O(1) lookup instead of a linear search

This commit is contained in:
2026-01-07 15:20:03 +01:00
parent 19aadc6fc8
commit 73930dabd8

View File

@@ -408,12 +408,15 @@ func validateOneOf(fieldName string, v reflect.Value, param string) *ValidationE
value := v.String() value := v.String()
allowedValues := strings.Split(param, " ") allowedValues := strings.Split(param, " ")
allowedMap := make(map[string]bool, len(allowedValues))
for _, allowed := range allowedValues { for _, allowed := range allowedValues {
if value == allowed { allowedMap[allowed] = true
return nil
}
} }
return &ValidationError{Field: fieldName, Message: fieldName + " must be one of: " + param} if !allowedMap[value] {
return &ValidationError{Field: fieldName, Message: fieldName + " must be one of: " + param}
}
return nil
} }