aboutsummaryrefslogtreecommitdiff
path: root/meta/piece.go
diff options
context:
space:
mode:
Diffstat (limited to 'meta/piece.go')
-rw-r--r--meta/piece.go16
1 files changed, 15 insertions, 1 deletions
diff --git a/meta/piece.go b/meta/piece.go
index bc93a13..354db9a 100644
--- a/meta/piece.go
+++ b/meta/piece.go
@@ -1,6 +1,10 @@
package meta
-import "crypto/sha1"
+import (
+ "crypto/sha1"
+
+ "dim13.org/btget/bitfield"
+)
type Pieces []Piece
@@ -27,3 +31,13 @@ func (p Pieces) Good() float64 {
}
return float64(good) * 100.0 / float64(len(p))
}
+
+func (p Pieces) BitField() bitfield.BitField {
+ bf := bitfield.New(len(p))
+ for i, v := range p {
+ if v.Ok {
+ bf.Set(i)
+ }
+ }
+ return bf
+}