aboutsummaryrefslogtreecommitdiff
path: root/meta/piece.go
diff options
context:
space:
mode:
Diffstat (limited to 'meta/piece.go')
-rw-r--r--meta/piece.go12
1 files changed, 12 insertions, 0 deletions
diff --git a/meta/piece.go b/meta/piece.go
index a3119e9..def03fb 100644
--- a/meta/piece.go
+++ b/meta/piece.go
@@ -2,6 +2,8 @@ package meta
import "crypto/sha1"
+type Pieces []Piece
+
type Piece struct {
Offset int64
Length int
@@ -13,3 +15,13 @@ func (p *Piece) Check(b []byte) bool {
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))
+}