func MergeMaps(ms ...map[string]any) map[string]any {
mergedMap := make(map[string]any)
for _, m := range ms {
for k, v := range m {
mergedMap[k] = v
}
}
return mergedMap
}
func MergeMapsSmart(ms ...map[string]any) map[string]any {
mergedMap := make(map[string]any)
for _, m := range ms {
for k, v := range m {
if existingValue, exists := mergedMap[k]; exists {
// Convert both existing and current values to strings
existingStr := fmt.Sprint(existingValue)
currentStr := fmt.Sprint(v)
// Compare lengths and choose the longer one
if len(currentStr) >= len(existingStr) {
mergedMap[k] = v
}
} else {
// If it doesn't exist, simply add the key-value pair
mergedMap[k] = v
}
}
}
return mergedMap
}