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