(p []byte)
| 402 | } |
| 403 | |
| 404 | func (b *ByteBuffer) Read(p []byte) (n int, err error) { |
| 405 | if len(p) == 0 { |
| 406 | return 0, nil |
| 407 | } |
| 408 | |
| 409 | if b.readerIndex+len(p) > len(b.data) && b.reader != nil { |
| 410 | var errOut Error |
| 411 | if !b.fill(len(p), &errOut) { |
| 412 | copied := copy(p, b.data[b.readerIndex:]) |
| 413 | b.readerIndex += copied |
| 414 | if errOut.Kind() == ErrKindBufferOutOfBound { |
| 415 | return copied, io.EOF |
| 416 | } |
| 417 | return copied, errOut |
| 418 | } |
| 419 | } |
| 420 | |
| 421 | copied := copy(p, b.data[b.readerIndex:]) |
| 422 | b.readerIndex += copied |
| 423 | if copied == 0 { |
| 424 | return 0, io.EOF |
| 425 | } |
| 426 | return copied, nil |
| 427 | } |
| 428 | |
| 429 | // ReadBinary reads n bytes and sets error on bounds violation |
| 430 | func (b *ByteBuffer) ReadBinary(length int, err *Error) []byte { |
no test coverage detected