Use faster mapRead function everywhere

This commit is contained in:
Bryan Boreham
2017-03-20 00:02:07 +00:00
parent 179da8b690
commit 6f80fcd870
3 changed files with 24 additions and 15 deletions

View File

@@ -160,11 +160,14 @@ func (c *Counters) CodecEncodeSelf(encoder *codec.Encoder) {
// CodecDecodeSelf implements codec.Selfer
func (c *Counters) CodecDecodeSelf(decoder *codec.Decoder) {
in := map[string]int{}
if err := decoder.Decode(&in); err != nil {
return
}
*c = Counters{}.fromIntermediate(in)
out := mapRead(decoder, func(isNil bool) interface{} {
var value int
if !isNil {
decoder.Decode(&value)
}
return value
})
*c = Counters{out}
}
// MarshalJSON shouldn't be used, use CodecEncodeSelf instead

View File

@@ -177,11 +177,14 @@ func (c *EdgeMetadatas) CodecEncodeSelf(encoder *codec.Encoder) {
// CodecDecodeSelf implements codec.Selfer
func (c *EdgeMetadatas) CodecDecodeSelf(decoder *codec.Decoder) {
in := map[string]EdgeMetadata{}
if err := decoder.Decode(&in); err != nil {
return
}
*c = EdgeMetadatas{}.fromIntermediate(in)
out := mapRead(decoder, func(isNil bool) interface{} {
var value EdgeMetadata
if !isNil {
decoder.Decode(&value)
}
return value
})
*c = EdgeMetadatas{out}
}
// MarshalJSON shouldn't be used, use CodecEncodeSelf instead

View File

@@ -177,11 +177,14 @@ func (s *Sets) CodecEncodeSelf(encoder *codec.Encoder) {
// CodecDecodeSelf implements codec.Selfer
func (s *Sets) CodecDecodeSelf(decoder *codec.Decoder) {
in := map[string]StringSet{}
if err := decoder.Decode(&in); err != nil {
return
}
*s = Sets{}.fromIntermediate(in)
out := mapRead(decoder, func(isNil bool) interface{} {
var value StringSet
if !isNil {
decoder.Decode(&value)
}
return value
})
*s = Sets{out}
}
// MarshalJSON shouldn't be used, use CodecEncodeSelf instead