26 lines
		
	
	
		
			513 B
		
	
	
	
		
			Go
		
	
	
	
	
	
		
		
			
		
	
	
			26 lines
		
	
	
		
			513 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| 
								 | 
							
								package whisper
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import "sort"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								type sortedKeys struct {
							 | 
						||
| 
								 | 
							
									k []int32
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								func (self *sortedKeys) Len() int           { return len(self.k) }
							 | 
						||
| 
								 | 
							
								func (self *sortedKeys) Less(i, j int) bool { return self.k[i] < self.k[j] }
							 | 
						||
| 
								 | 
							
								func (self *sortedKeys) Swap(i, j int)      { self.k[i], self.k[j] = self.k[j], self.k[i] }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								func sortKeys(m map[int32]Hash) []int32 {
							 | 
						||
| 
								 | 
							
									sorted := new(sortedKeys)
							 | 
						||
| 
								 | 
							
									sorted.k = make([]int32, len(m))
							 | 
						||
| 
								 | 
							
									i := 0
							 | 
						||
| 
								 | 
							
									for key, _ := range m {
							 | 
						||
| 
								 | 
							
										sorted.k[i] = key
							 | 
						||
| 
								 | 
							
										i++
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									sort.Sort(sorted)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									return sorted.k
							 | 
						||
| 
								 | 
							
								}
							 |