utils.go 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. // Copyright 2018 The etcd Authors
  2. //
  3. // Licensed under the Apache License, Version 2.0 (the "License");
  4. // you may not use this file except in compliance with the License.
  5. // You may obtain a copy of the License at
  6. //
  7. // http://www.apache.org/licenses/LICENSE-2.0
  8. //
  9. // Unless required by applicable law or agreed to in writing, software
  10. // distributed under the License is distributed on an "AS IS" BASIS,
  11. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. // See the License for the specific language governing permissions and
  13. // limitations under the License.
  14. package main
  15. import "sort"
  16. func aggSort(ss []string) (sorted []string) {
  17. set := make(map[string]struct{})
  18. for _, s := range ss {
  19. set[s] = struct{}{}
  20. }
  21. sorted = make([]string, 0, len(set))
  22. for k := range set {
  23. sorted = append(sorted, k)
  24. }
  25. sort.Strings(sorted)
  26. return sorted
  27. }
  28. func sortMap(set map[string]struct{}) (sorted []string) {
  29. sorted = make([]string, 0, len(set))
  30. for k := range set {
  31. sorted = append(sorted, k)
  32. }
  33. sort.Strings(sorted)
  34. return sorted
  35. }