package meta import "crypto/sha1" type Pieces []Piece type Piece struct { Offset int64 Length int Sum [sha1.Size]byte Ok bool } func (p *Piece) Check(b []byte) bool { if !p.Ok { p.Ok = sha1.Sum(b) == p.Sum } return p.Ok } func (p Pieces) Good() float64 { var good int for _, v := range p { if v.Ok { good++ } } return float64(good) * 100.0 / float64(len(p)) }