Alejandro Mery
1 year ago
2 changed files with 32 additions and 27 deletions
@ -0,0 +1,29 @@ |
|||||||
|
package cluster |
||||||
|
|
||||||
|
import "sort" |
||||||
|
|
||||||
|
// SortRegions sorts regions. first by length those 3-character
|
||||||
|
// or shorter, and then by length. It's mostly aimed at
|
||||||
|
// supporting ISO-3166 order
|
||||||
|
func SortRegions(regions []string) []string { |
||||||
|
sort.Slice(regions, func(i, j int) bool { |
||||||
|
r1, r2 := regions[i], regions[j] |
||||||
|
|
||||||
|
switch { |
||||||
|
case len(r1) < 4: |
||||||
|
switch { |
||||||
|
case len(r1) < len(r2): |
||||||
|
return true |
||||||
|
case len(r1) > len(r2): |
||||||
|
return false |
||||||
|
default: |
||||||
|
return r1 < r2 |
||||||
|
} |
||||||
|
case len(r2) < 4: |
||||||
|
return false |
||||||
|
default: |
||||||
|
return r1 < r2 |
||||||
|
} |
||||||
|
}) |
||||||
|
return regions |
||||||
|
} |
Loading…
Reference in new issue