From bd954772ebf81c7b7c32f19f9973c9007a6442b1 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Wed, 13 Jul 2016 01:55:09 +0200 Subject: BitField --- meta/piece.go | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'meta') 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 +} -- cgit v1.2.3