2026-04-06 11:04:53 +01:00
|
|
|
// Generic helpers
|
|
|
|
|
package main
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"sort"
|
2026-04-18 10:29:07 +01:00
|
|
|
"sync"
|
2026-04-06 11:04:53 +01:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
func rangeOrdered(m *sync.Map, fn func(k, v any) bool) {
|
2026-04-18 10:29:07 +01:00
|
|
|
var keys []string
|
2026-04-06 11:04:53 +01:00
|
|
|
|
2026-04-18 10:29:07 +01:00
|
|
|
m.Range(func(k, v any) bool {
|
|
|
|
|
keys = append(keys, k.(string))
|
|
|
|
|
return true
|
|
|
|
|
})
|
2026-04-06 11:04:53 +01:00
|
|
|
|
2026-04-18 10:29:07 +01:00
|
|
|
sort.Strings(keys)
|
2026-04-06 11:04:53 +01:00
|
|
|
|
2026-04-18 10:29:07 +01:00
|
|
|
for _, k := range keys {
|
|
|
|
|
v, _ := m.Load(k)
|
|
|
|
|
if !fn(k, v) {
|
|
|
|
|
break
|
|
|
|
|
}
|
|
|
|
|
}
|
2026-04-06 11:04:53 +01:00
|
|
|
}
|