github.com/yankunsam/loki/v2@v2.6.3-0.20220817130409-389df5235c27/pkg/util/mapmerge.go (about) 1 package util 2 3 // CopyMap makes a copy of the given map 4 func CopyMap(m map[string]string) map[string]string { 5 var newMap = make(map[string]string, len(m)) 6 7 if m == nil { 8 return nil 9 } 10 11 for k, v := range m { 12 newMap[k] = v 13 } 14 15 return newMap 16 } 17 18 // MergeMaps merges the overlay map onto the base map, with overlay taking precedence 19 // NOTE: this treats the given base and overlay maps as immutable, and returns a copy 20 func MergeMaps(base map[string]string, overlay map[string]string) map[string]string { 21 if base == nil { 22 return CopyMap(overlay) 23 } 24 25 newMap := CopyMap(base) 26 if overlay == nil { 27 return newMap 28 } 29 30 for k, v := range overlay { 31 newMap[k] = v 32 } 33 34 return newMap 35 }