diff options
Diffstat (limited to 'src/pkg/json/struct.go')
-rw-r--r-- | src/pkg/json/struct.go | 86 |
1 files changed, 43 insertions, 43 deletions
diff --git a/src/pkg/json/struct.go b/src/pkg/json/struct.go index 37728d38b..11aaccee9 100644 --- a/src/pkg/json/struct.go +++ b/src/pkg/json/struct.go @@ -25,7 +25,7 @@ var nobuilder *structBuilder func isfloat(v reflect.Value) bool { switch v.(type) { case *reflect.FloatValue, *reflect.Float32Value, *reflect.Float64Value: - return true; + return true } return false; } @@ -33,36 +33,36 @@ func isfloat(v reflect.Value) bool { func setfloat(v reflect.Value, f float64) { switch v := v.(type) { case *reflect.FloatValue: - v.Set(float(f)); + v.Set(float(f)) case *reflect.Float32Value: - v.Set(float32(f)); + v.Set(float32(f)) case *reflect.Float64Value: - v.Set(float64(f)); + v.Set(float64(f)) } } func setint(v reflect.Value, i int64) { switch v := v.(type) { case *reflect.IntValue: - v.Set(int(i)); + v.Set(int(i)) case *reflect.Int8Value: - v.Set(int8(i)); + v.Set(int8(i)) case *reflect.Int16Value: - v.Set(int16(i)); + v.Set(int16(i)) case *reflect.Int32Value: - v.Set(int32(i)); + v.Set(int32(i)) case *reflect.Int64Value: - v.Set(int64(i)); + v.Set(int64(i)) case *reflect.UintValue: - v.Set(uint(i)); + v.Set(uint(i)) case *reflect.Uint8Value: - v.Set(uint8(i)); + v.Set(uint8(i)) case *reflect.Uint16Value: - v.Set(uint16(i)); + v.Set(uint16(i)) case *reflect.Uint32Value: - v.Set(uint32(i)); + v.Set(uint32(i)) case *reflect.Uint64Value: - v.Set(uint64(i)); + v.Set(uint64(i)) } } @@ -70,46 +70,46 @@ func setint(v reflect.Value, i int64) { // copy a changed b.val out to the original. func (b *structBuilder) Flush() { if b == nil { - return; + return } if b.map_ != nil { - b.map_.SetElem(b.key, b.val); + b.map_.SetElem(b.key, b.val) } } func (b *structBuilder) Int64(i int64) { if b == nil { - return; + return } v := b.val; if isfloat(v) { - setfloat(v, float64(i)); + setfloat(v, float64(i)) } else { - setint(v, i); + setint(v, i) } } func (b *structBuilder) Uint64(i uint64) { if b == nil { - return; + return } v := b.val; if isfloat(v) { - setfloat(v, float64(i)); + setfloat(v, float64(i)) } else { - setint(v, int64(i)); + setint(v, int64(i)) } } func (b *structBuilder) Float64(f float64) { if b == nil { - return; + return } v := b.val; if isfloat(v) { - setfloat(v, f); + setfloat(v, f) } else { - setint(v, int64(f)); + setint(v, int64(f)) } } @@ -117,60 +117,60 @@ func (b *structBuilder) Null() {} func (b *structBuilder) String(s string) { if b == nil { - return; + return } if v, ok := b.val.(*reflect.StringValue); ok { - v.Set(s); + v.Set(s) } } func (b *structBuilder) Bool(tf bool) { if b == nil { - return; + return } if v, ok := b.val.(*reflect.BoolValue); ok { - v.Set(tf); + v.Set(tf) } } func (b *structBuilder) Array() { if b == nil { - return; + return } if v, ok := b.val.(*reflect.SliceValue); ok { if v.IsNil() { - v.Set(reflect.MakeSlice(v.Type().(*reflect.SliceType), 0, 8)); + v.Set(reflect.MakeSlice(v.Type().(*reflect.SliceType), 0, 8)) } } } func (b *structBuilder) Elem(i int) Builder { if b == nil || i < 0 { - return nobuilder; + return nobuilder } switch v := b.val.(type) { case *reflect.ArrayValue: if i < v.Len() { - return &structBuilder{val: v.Elem(i)}; + return &structBuilder{val: v.Elem(i)} } case *reflect.SliceValue: if i > v.Cap() { n := v.Cap(); if n < 8 { - n = 8; + n = 8 } for n <= i { - n *= 2; + n *= 2 } nv := reflect.MakeSlice(v.Type().(*reflect.SliceType), v.Len(), n); reflect.ArrayCopy(nv, v); v.Set(nv); } if v.Len() <= i && i < v.Cap() { - v.SetLen(i+1); + v.SetLen(i+1) } if i < v.Len() { - return &structBuilder{val: v.Elem(i)}; + return &structBuilder{val: v.Elem(i)} } } return nobuilder; @@ -178,7 +178,7 @@ func (b *structBuilder) Elem(i int) Builder { func (b *structBuilder) Map() { if b == nil { - return; + return } if v, ok := b.val.(*reflect.PtrValue); ok && v.IsNil() { if v.IsNil() { @@ -189,13 +189,13 @@ func (b *structBuilder) Map() { b.val = v.Elem(); } if v, ok := b.val.(*reflect.MapValue); ok && v.IsNil() { - v.Set(reflect.MakeMap(v.Type().(*reflect.MapType))); + v.Set(reflect.MakeMap(v.Type().(*reflect.MapType))) } } func (b *structBuilder) Key(k string) Builder { if b == nil { - return nobuilder; + return nobuilder } switch v := reflect.Indirect(b.val).(type) { case *reflect.StructValue: @@ -204,13 +204,13 @@ func (b *structBuilder) Key(k string) Builder { k = strings.ToLower(k); for i := 0; i < t.NumField(); i++ { if strings.ToLower(t.Field(i).Name) == k { - return &structBuilder{val: v.Field(i)}; + return &structBuilder{val: v.Field(i)} } } case *reflect.MapValue: t := v.Type().(*reflect.MapType); if t.Key() != reflect.Typeof(k) { - break; + break } key := reflect.NewValue(k); elem := v.Elem(key); @@ -286,7 +286,7 @@ func Unmarshal(s string, val interface{}) (ok bool, errtok string) { b := &structBuilder{val: reflect.NewValue(val)}; ok, _, errtok = Parse(s, b); if !ok { - return false, errtok; + return false, errtok } return true, ""; } |