Files
integration/Source/Integration/StringDecoder.cpp

39 lines
757 B
C++
Raw Normal View History

#include "StringDecoder.h"
2023-09-15 13:28:18 -04:00
FlxStringDecoder::FlxStringDecoder(std::string_view s) {
2023-09-08 05:38:09 -04:00
Text = s.data();
Size = s.size();
ErrBeyondEOF = false;
ErrStringTooLong = false;
}
void FlxStringDecoder::Reset(std::string_view s, bool clear) {
Text = s.data();
Size = s.size();
if (clear) {
ErrBeyondEOF = false;
ErrStringTooLong = false;
}
}
std::string_view FlxStringDecoder::GetRest() {
return std::string_view(Text, Size);
}
2023-09-15 13:28:18 -04:00
std::string_view FlxStringDecoder::read_string_view() {
size_t length = read_length();
if (length > Size) {
ErrBeyondEOF = true;
return std::string_view();
}
std::string_view result(Text, length);
Text += length;
Size -= length;
return result;
}
2023-09-08 05:38:09 -04:00
2023-09-15 13:28:18 -04:00
void FlxStringDecoder::set_at_eof() {
2023-09-08 05:38:09 -04:00
Text += Size;
Size = 0;
}