]> Sergey Matveev's repositories - btrtrc.git/blob - metainfo/piece.go
Panic if NewHashFromHex gets a bad string
[btrtrc.git] / metainfo / piece.go
1 package metainfo
2
3 import "github.com/anacrolix/missinggo"
4
5 type Piece struct {
6         Info *Info
7         i    int
8 }
9
10 func (p Piece) Length() int64 {
11         if p.i == p.Info.NumPieces()-1 {
12                 return p.Info.TotalLength() - int64(p.i)*p.Info.PieceLength
13         }
14         return p.Info.PieceLength
15 }
16
17 func (p Piece) Offset() int64 {
18         return int64(p.i) * p.Info.PieceLength
19 }
20
21 func (p Piece) Hash() (ret Hash) {
22         missinggo.CopyExact(&ret, p.Info.Pieces[p.i*20:(p.i+1)*20])
23         return
24 }
25
26 func (p Piece) Index() int {
27         return p.i
28 }