public void PushBack(byte b) {
if (_bufferStart > 0) {
_buffer[--_bufferStart] = b;
} else if (_buffer != null) {
Utils.InsertAt(ref _buffer, _bufferCount, 0, b, 1);
} else {
_buffer = new byte[_defaultBufferSize];
_buffer[0] = b;
}
_pushedBackCount++;
_bufferCount++;
}