aboutsummaryrefslogtreecommitdiffstats
path: root/whisper/sort.go
blob: 313ba5ac0a63650b3d1ac863c93de808742a04f8 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package whisper

import (
    "sort"

    "github.com/ethereum/go-ethereum/common"
)

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]common.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
}