aboutsummaryrefslogtreecommitdiff
path: root/meta/piece.go
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2016-07-12 21:06:07 +0200
committerDimitri Sokolyuk <demon@dim13.org>2016-07-12 21:06:07 +0200
commit5fdbc767bc12cdaf7d969a598e6a2eb4b5e66b7c (patch)
tree73ae9c1462c18ae6c20efb1169070090fe455e89 /meta/piece.go
parentd8de4ab1572293d6582491447b01436cfa27fc38 (diff)
Good pieces
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))
+}