1 package sets 2 3 func StringSliceToSet(items []string) map[string]struct{} { 4 s := map[string]struct{}{} 5 for _, item := range items { 6 s[item] = struct{}{} 7 } 8 return s 9 } 10 11 func StringSetToSlice(items map[string]struct{}) []string { 12 ret := []string{} 13 14 for k := range items { 15 ret = append(ret, k) 16 } 17 18 return ret 19 } 20 21 func DeduplicateStrings(items []string) []string { 22 s := StringSliceToSet(items) 23 return StringSetToSlice(s) 24 } 25