public byte ReadByte()
{
ThrowIfDisposed();
EnsureDataAvailable(1);
var chunkIndex = (_sliceOffset + _position) / _chunkSize;
var chunkOffset = (_sliceOffset + _position) % _chunkSize;
var value = _chunks[chunkIndex].Bytes[chunkOffset];
_position += 1;
return value;
}