(b []byte)
| 376 | var errInvalidFieldID = errors.New("invalid struct field id") |
| 377 | |
| 378 | func (d decoder) decodeStructFieldID(b []byte) (int, []byte, error) { |
| 379 | c, b, err := readByte(b) |
| 380 | if err != nil { |
| 381 | return 0, nil, err |
| 382 | } |
| 383 | if msgpcode.IsFixedNum(c) { |
| 384 | return int(int8(c)), b, nil |
| 385 | } |
| 386 | switch c { |
| 387 | case msgpcode.Uint8: |
| 388 | n, b, err := readByte(b) |
| 389 | if err != nil { |
| 390 | return 0, nil, err |
| 391 | } |
| 392 | return int(n), b, nil |
| 393 | case msgpcode.Uint16: |
| 394 | n, b, err := parseUint16(b) |
| 395 | if err != nil { |
| 396 | return 0, nil, err |
| 397 | } |
| 398 | return int(n), b, nil |
| 399 | default: |
| 400 | return 0, nil, errInvalidFieldID |
| 401 | } |
| 402 | } |
| 403 | func (d decoder) decodeEmbeddedStructPointer(b []byte, p unsafe.Pointer, t reflect.Type, unexported bool, offset uintptr, decode decodeFunc) ([]byte, error) { |
| 404 | v := *(*unsafe.Pointer)(p) |
| 405 | if v == nil { |
no test coverage detected