bencode/encode.go | 8 +++++--- diff --git a/bencode/encode.go b/bencode/encode.go index e364a5d317cb958a514466f98182d37fd210bd5a..d6b6334f38331c857d79ed3b7194b3c3906845da 100644 --- a/bencode/encode.go +++ b/bencode/encode.go @@ -105,16 +105,18 @@ return false } +var bigIntType = reflect.TypeOf(big.Int{}) + func (e *Encoder) reflectValue(v reflect.Value) { if e.reflectMarshaler(v) { return } - switch t := v.Interface().(type) { - case big.Int: + if v.Type() == bigIntType { e.writeString("i") - e.writeString(t.String()) + bi := v.Interface().(big.Int) + e.writeString(bi.String()) e.writeString("e") return }