public ArraySegment<byte> ReadBackingBytes(int count)
{
ThrowIfDisposed();
EnsureDataAvailable(count);
var chunkIndex = (_sliceOffset + _position) / _chunkSize;
var chunkOffset = (_sliceOffset + _position) % _chunkSize;
var chunkRemaining = _chunkSize - chunkOffset;
if (count <= chunkRemaining)
{
_position += count;
return new ArraySegment<byte>(_chunks[chunkIndex].Bytes, chunkOffset, count);
}
else
{
return new ArraySegment<byte>();
}
}