From dd194d416441e67d3a955f692e27bc4b77fdb748 Mon Sep 17 00:00:00 2001 From: Cameron Clark Date: Thu, 14 Aug 2025 13:28:04 +0100 Subject: [PATCH] perf(stringutil): optimize `Format` --- internal/stringutil/format.go | 60 ++++++++++++++++++++++++++++++----- 1 file changed, 52 insertions(+), 8 deletions(-) diff --git a/internal/stringutil/format.go b/internal/stringutil/format.go index 3c52e36d4e..b1cf42eb1e 100644 --- a/internal/stringutil/format.go +++ b/internal/stringutil/format.go @@ -2,18 +2,62 @@ package stringutil import ( "fmt" - "regexp" - "strconv" + "strings" ) -var placeholderRegexp = regexp.MustCompile(`{(\d+)}`) +const maxInt = int(^uint(0) >> 1) func Format(text string, args []any) string { - return placeholderRegexp.ReplaceAllStringFunc(text, func(match string) string { - index, err := strconv.ParseInt(match[1:len(match)-1], 10, 0) - if err != nil || int(index) >= len(args) { + if !strings.Contains(text, "{") { + return text + } + + var b strings.Builder + b.Grow(len(text) + len(text)/4) + + for i := 0; i < len(text); { + if text[i] != '{' { + j := i + 1 + for j < len(text) && text[j] != '{' { + j++ + } + b.WriteString(text[i:j]) + i = j + continue + } + + j := i + 1 + if j >= len(text) || text[j] < '0' || text[j] > '9' { + b.WriteByte('{') + i++ + continue + } + + k := j + for k < len(text) && text[k] >= '0' && text[k] <= '9' { + k++ + } + if k >= len(text) || text[k] != '}' { + b.WriteByte('{') + i++ + continue + } + + n := 0 + for p := j; p < k; p++ { + d := int(text[p] - '0') + if n > (maxInt-d)/10 { + panic("Invalid formatting placeholder") + } + n = n*10 + d + } + if n >= len(args) { panic("Invalid formatting placeholder") } - return fmt.Sprintf("%v", args[int(index)]) - }) + + b.WriteString(fmt.Sprint(args[n])) + i = k + 1 + } + + return b.String() }