2025-10-15 10:12:44 +03:00

19 lines
378 B
Go

package dirty
import "maps"
func CloneMapIfNil[K comparable, V any, T any](dirty *T, original *T, getMap func(*T) map[K]V) map[K]V {
dirtyMap := getMap(dirty)
if dirtyMap == nil {
if original == nil {
return make(map[K]V)
}
originalMap := getMap(original)
if originalMap == nil {
return make(map[K]V)
}
return maps.Clone(originalMap)
}
return dirtyMap
}