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  }