]> Sergey Matveev's repositories - btrtrc.git/blob - cmd/btrtrc/sort.go
cmd/btrtrc client
[btrtrc.git] / cmd / btrtrc / sort.go
1 package main
2
3 import (
4         "encoding/hex"
5
6         "github.com/anacrolix/torrent"
7 )
8
9 type ByInfoHash []*torrent.Torrent
10
11 func (a ByInfoHash) Len() int {
12         return len(a)
13 }
14
15 func (a ByInfoHash) Swap(i, j int) {
16         a[i], a[j] = a[j], a[i]
17 }
18
19 func (a ByInfoHash) Less(i, j int) bool {
20         return a[i].InfoHash().HexString() < a[j].InfoHash().HexString()
21 }
22
23 type ByTxTraffic []*topTorrent
24
25 func (a ByTxTraffic) Len() int {
26         return len(a)
27 }
28
29 func (a ByTxTraffic) Swap(i, j int) {
30         a[i], a[j] = a[j], a[i]
31 }
32
33 func (a ByTxTraffic) Less(i, j int) bool {
34         if a[i].tx == a[j].tx {
35                 return a[i].infoHash.HexString() < a[j].infoHash.HexString()
36         }
37         return a[i].tx < a[j].tx
38 }
39
40 type ByPeerID []*torrent.PeerConn
41
42 func (a ByPeerID) Len() int {
43         return len(a)
44 }
45
46 func (a ByPeerID) Swap(i, j int) {
47         a[i], a[j] = a[j], a[i]
48 }
49
50 func (a ByPeerID) Less(i, j int) bool {
51         return hex.EncodeToString(a[i].PeerID[:]) < hex.EncodeToString(a[j].PeerID[:])
52 }