in pkg/xcontext/metrics/prometheus/metrics.go [24:54]
func mergeSortedStrings(dst []string, add ...string) []string {
if len(add) == 0 {
return dst
}
if len(dst) == 0 {
return append([]string{}, add...)
}
dstLen := len(dst)
if !sort.StringsAreSorted(dst) || !sort.StringsAreSorted(add) {
panic(fmt.Sprintf("%v %v", sort.StringsAreSorted(dst), sort.StringsAreSorted(add)))
}
i, j := 0, 0
for i < dstLen && j < len(add) {
switch strings.Compare(dst[i], add[j]) {
case -1:
i++
case 0:
i++
j++
case 1:
dst = append(dst, add[j])
j++
}
}
dst = append(dst, add[j:]...)
sort.Strings(dst)
return dst
}