]> Sergey Matveev's repositories - btrtrc.git/blob - peer_protocol/protocol.go
Use stringer to generate peer_protocol.MessageType strings
[btrtrc.git] / peer_protocol / protocol.go
1 package peer_protocol
2
3 const (
4         Protocol = "\x13BitTorrent protocol"
5 )
6
7 type MessageType byte
8
9 //go:generate stringer -type=MessageType
10
11 func (mt MessageType) FastExtension() bool {
12         return mt >= Suggest && mt <= AllowedFast
13 }
14
15 const (
16         Choke         MessageType = iota
17         Unchoke                   // 1
18         Interested                // 2
19         NotInterested             // 3
20         Have                      // 4
21         Bitfield                  // 5
22         Request                   // 6
23         Piece                     // 7
24         Cancel                    // 8
25         Port                      // 9
26
27         // BEP 6
28         Suggest     MessageType = iota + 0xd // 13
29         HaveAll                 = 0xe        // 14
30         HaveNone                = 0xf        // 15
31         Reject                  = 0x10       // 16
32         AllowedFast             = 0x11       // 17
33
34         Extended = 20
35
36         HandshakeExtendedID = 0
37
38         RequestMetadataExtensionMsgType = 0
39         DataMetadataExtensionMsgType    = 1
40         RejectMetadataExtensionMsgType  = 2
41 )