mirror of
https://github.com/turbot/steampipe.git
synced 2026-02-19 07:00:17 -05:00
55 lines
856 B
Go
55 lines
856 B
Go
package utils
|
|
|
|
import (
|
|
"sort"
|
|
)
|
|
|
|
// MergeStringMaps merges 'new' onto old. Any vakue existing in new but not old is added to old
|
|
// NOTE this mutates old
|
|
func MergeStringMaps(old, new map[string]string) map[string]string {
|
|
if old == nil {
|
|
return new
|
|
}
|
|
if new == nil {
|
|
return old
|
|
}
|
|
for k, v := range new {
|
|
if _, ok := old[k]; ok {
|
|
old[k] = v
|
|
}
|
|
}
|
|
|
|
return old
|
|
}
|
|
|
|
func SortedStringKeys[V any](m map[string]V) []string {
|
|
keys := []string{}
|
|
for k := range m {
|
|
keys = append(keys, k)
|
|
}
|
|
sort.Strings(keys)
|
|
return keys
|
|
}
|
|
|
|
func StringMapsEqual(l, r map[string]string) bool {
|
|
// treat nil as empty
|
|
if l == nil {
|
|
l = map[string]string{}
|
|
}
|
|
if r == nil {
|
|
r = map[string]string{}
|
|
}
|
|
|
|
if len(l) != len(r) {
|
|
return false
|
|
}
|
|
|
|
for k, lVal := range l {
|
|
rVal, ok := r[k]
|
|
if !ok || rVal != lVal {
|
|
return false
|
|
}
|
|
}
|
|
return true
|
|
}
|