public int FindNullByte()
{
ThrowIfDisposed();
var chunkIndex = (_sliceOffset + _position) / _chunkSize;
var chunkOffset = (_sliceOffset + _position) % _chunkSize;
var remaining = _length - _position;
while (remaining > 0)
{
var chunkRemaining = _chunkSize - chunkOffset;
var index = Array.IndexOf<byte>(_chunks[chunkIndex].Bytes, 0, chunkOffset, chunkRemaining);
if (index != -1)
{
return (chunkIndex * _chunkSize + index) - _sliceOffset;
}
chunkIndex += 1;
chunkOffset = 0;
remaining -= chunkRemaining;
}
return -1;
}