From d966ae6400625bf58626838b162e0a7fd83eaed4 Mon Sep 17 00:00:00 2001 From: Marco Pracucci Date: Tue, 4 Jun 2024 10:24:36 +0200 Subject: [PATCH] Optimize containsInOrder() inlining it Signed-off-by: Marco Pracucci --- model/labels/regexp.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/model/labels/regexp.go b/model/labels/regexp.go index 11fadc687..f228d7ff1 100644 --- a/model/labels/regexp.go +++ b/model/labels/regexp.go @@ -941,6 +941,15 @@ func hasSuffixCaseInsensitive(s, suffix string) bool { } func containsInOrder(s string, contains []string) bool { + // Optimization for the case we only have to look for 1 substring. + if len(contains) == 1 { + return strings.Contains(s, contains[0]) + } + + return containsInOrderMulti(s, contains) +} + +func containsInOrderMulti(s string, contains []string) bool { offset := 0 for _, substr := range contains {