From 370eb2d2a63d60582d9cfa9719a082b6f0333316 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Tue, 21 Jun 2016 16:43:43 +0200 Subject: More time --- bencode/bencode.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'bencode') diff --git a/bencode/bencode.go b/bencode/bencode.go index a98eac4..80b2ed3 100644 --- a/bencode/bencode.go +++ b/bencode/bencode.go @@ -55,7 +55,11 @@ func isEmpty(v reflect.Value) bool { return v.Int() == 0 case reflect.String, reflect.Slice: return v.Len() == 0 - case reflect.Interface, reflect.Ptr: + case reflect.Interface: + if t, ok := v.Interface().(time.Time); ok { + return t.IsZero() + } + case reflect.Ptr: return v.IsNil() } return false @@ -269,6 +273,11 @@ func (d *decodeState) unmarshalInt(v reflect.Value) error { d.off += n if v.CanSet() { switch v.Interface().(type) { + case *time.Time: + t := time.Unix(i, 0) + nv := reflect.New(v.Type()) + nv.Elem().Set(reflect.ValueOf(&t)) + v.Set(nv.Elem()) case time.Time: t := time.Unix(i, 0) v.Set(reflect.ValueOf(t)) -- cgit v1.2.3