github.com/seeker-insurance/kit@v0.0.13/maputil/stringmap/stringmap.go (about) 1 //Package stringmap contains utility functions for working with the map[string]string type 2 package stringmap 3 4 import "sort" 5 6 //Keys return a slice containing the keys of the map[string]string. No order is guaranteed. 7 func Keys(m map[string]string) []string { 8 keys := make([]string, len(m)) 9 var i int 10 for k := range m { 11 keys[i] = k 12 i++ 13 } 14 return keys 15 } 16 17 //Vals returns a slice containing the values of the map[string]string. No order is guaranteed. Note that values may not be unique. 18 func Vals(m map[string]string) []string { 19 vals := make([]string, len(m)) 20 var i int 21 for _, v := range m { 22 vals[i] = v 23 i++ 24 } 25 return vals 26 } 27 28 //SortedKeys returns a slice containin the (sorted) keys of the map[string]string, in the usual lexigraphic order provided by sort.Strings 29 func SortedKeys(m map[string]string) []string { 30 keys := Keys(m) 31 sort.Strings(keys) 32 return keys 33 } 34 35 //SortedVals returns a slice containin the (sorted) valuess of the map[string]string, in the usual lexigraphic order provided by sort.Strings. Values may not be unique. 36 func SortedVals(m map[string]string) []string { 37 vals := Vals(m) 38 sort.Strings(vals) 39 return vals 40 } 41 42 //Copy returns a copy of the map[string]string. 43 func Copy(m map[string]string) map[string]string { 44 copy := make(map[string]string) 45 for k, v := range m { 46 copy[k] = v 47 } 48 return copy 49 }