ReadExtensionRaw reads the next object from the reader as an extension. The returned slice is only valid until the next *Reader method call.
()
| 403 | // as an extension. The returned slice is only |
| 404 | // valid until the next *Reader method call. |
| 405 | func (m *Reader) ReadExtensionRaw() (int8, []byte, error) { |
| 406 | offset, length, extType, err := m.peekExtensionHeader() |
| 407 | if err != nil { |
| 408 | return 0, nil, err |
| 409 | } |
| 410 | if uint32(length) > m.GetMaxElements() { |
| 411 | return 0, nil, ErrLimitExceeded |
| 412 | } |
| 413 | |
| 414 | payload, err := m.R.Next(offset + length) |
| 415 | if err != nil { |
| 416 | return 0, nil, err |
| 417 | } |
| 418 | |
| 419 | return extType, payload[offset:], nil |
| 420 | } |
| 421 | |
| 422 | // AppendExtension appends a MessagePack extension to the provided slice |
| 423 | func AppendExtension(b []byte, e Extension) ([]byte, error) { |