protected override int ReadNextByte() { if (_dataIndex == _dataParts.Count) { return(-1); } var b = _data.Span[_dataOfs]; if (++_dataOfs == _data.Length) { _dataOfs = 0; _dataCount += _data.Length; if (++_dataIndex < _dataParts.Count) { _data = _packetReader.GetPacketData(_dataParts[_dataIndex]); } else { _data = Memory <byte> .Empty; } } return(b); }