MCPcopy Index your code
hub / github.com/vmihailenco/msgpack / decodeInterfaceExt

Method decodeInterfaceExt

ext.go:246–267  ·  view source on GitHub ↗
(c byte)

Source from the content-addressed store, hash-verified

244}
245
246func (d *Decoder) decodeInterfaceExt(c byte) (interface{}, error) {
247 extID, extLen, err := d.extHeader(c)
248 if err != nil {
249 return nil, err
250 }
251
252 info, ok := extTypes[extID]
253 if !ok {
254 return nil, fmt.Errorf("msgpack: unknown ext id=%d", extID)
255 }
256
257 v := d.newValue(info.Type).Elem()
258 if nilable(v.Kind()) && v.IsNil() {
259 v.Set(d.newValue(info.Type.Elem()))
260 }
261
262 if err := info.Decoder(d, v, extLen); err != nil {
263 return nil, err
264 }
265
266 return v.Interface(), nil
267}
268
269func (d *Decoder) skipExt(c byte) error {
270 n, err := d.parseExtLen(c)

Callers 2

DecodeInterfaceMethod · 0.95
DecodeInterfaceLooseMethod · 0.95

Calls 4

extHeaderMethod · 0.95
newValueMethod · 0.95
nilableFunction · 0.85
SetMethod · 0.80

Tested by

no test coverage detected