code: func (b *ByteBuf) Read(p []byte) (n int, err error) {
  	if len(p) == 0 {
  		return 0, nil
  	}
  
  	size := len(p)
  	if len(p) > b.Readable() {
  		size = b.Readable()
  	}
  
  	n = copy(p, b.buf[b.readerIndex:b.readerIndex+size])
  	b.readerIndex += n
  	return n, nil
  }
docs: // Read read bytes
  // return readedBytesCount, byte array, error