From 73930dabd8a686287f87e705bf4a9d4e7e051067 Mon Sep 17 00:00:00 2001 From: Kharec Date: Wed, 7 Jan 2026 15:20:03 +0100 Subject: [PATCH] feat: use a map for O(1) lookup instead of a linear search --- internal/validation/validation.go | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/internal/validation/validation.go b/internal/validation/validation.go index 6b7ff87..c855794 100644 --- a/internal/validation/validation.go +++ b/internal/validation/validation.go @@ -408,12 +408,15 @@ func validateOneOf(fieldName string, v reflect.Value, param string) *ValidationE value := v.String() allowedValues := strings.Split(param, " ") + allowedMap := make(map[string]bool, len(allowedValues)) for _, allowed := range allowedValues { - if value == allowed { - return nil - } + allowedMap[allowed] = true } - 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 }