aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2016-07-13 12:41:19 +0200
committerDimitri Sokolyuk <demon@dim13.org>2016-07-13 12:41:19 +0200
commit937fe386e9bc6a825810145f0843f353df80e8c7 (patch)
tree47cf9d67f60a12130b63870a9c9d6be5f7faa1bc
parentfa593f7c9f153f6ba804aa935b8f6dc72b6d9709 (diff)
Stringer
-rw-r--r--bitfield/bitfield.go6
-rw-r--r--cmd/btcheck/main.go4
-rw-r--r--meta/piece.go11
3 files changed, 17 insertions, 4 deletions
diff --git a/bitfield/bitfield.go b/bitfield/bitfield.go
index da4d4d8..c469281 100644
--- a/bitfield/bitfield.go
+++ b/bitfield/bitfield.go
@@ -1,5 +1,7 @@
package bitfield
+import "fmt"
+
type BitField []byte
func New(n int) BitField {
@@ -34,3 +36,7 @@ func (b BitField) Clear(i int) {
b[x] &= ^(1 << y)
}
}
+
+func (b BitField) String() string {
+ return fmt.Sprintf("% x", []byte(b))
+}
diff --git a/cmd/btcheck/main.go b/cmd/btcheck/main.go
index ad80081..12db2c7 100644
--- a/cmd/btcheck/main.go
+++ b/cmd/btcheck/main.go
@@ -26,6 +26,6 @@ func main() {
fmt.Println(i, p.Offset, n, p.Check(buf[:n]))
pieces[i] = p
}
- fmt.Printf("%6.2f%%\n", pieces.Good())
- fmt.Printf("% x\n", pieces.BitField())
+ fmt.Println(pieces.Good())
+ fmt.Println(pieces.BitField())
}
diff --git a/meta/piece.go b/meta/piece.go
index 354db9a..247f848 100644
--- a/meta/piece.go
+++ b/meta/piece.go
@@ -2,6 +2,7 @@ package meta
import (
"crypto/sha1"
+ "fmt"
"dim13.org/btget/bitfield"
)
@@ -22,14 +23,20 @@ func (p *Piece) Check(b []byte) bool {
return p.Ok
}
-func (p Pieces) Good() float64 {
+type Percent float64
+
+func (p Percent) String() string {
+ return fmt.Sprintf("%6.2f%%", p)
+}
+
+func (p Pieces) Good() Percent {
var good int
for _, v := range p {
if v.Ok {
good++
}
}
- return float64(good) * 100.0 / float64(len(p))
+ return Percent(good) * 100.0 / Percent(len(p))
}
func (p Pieces) BitField() bitfield.BitField {