diff src/core/byte_stream.cc @ 364:99c961c91809

core: refactor out byte stream into its own file easy dubs
author Paper <paper@paper.us.eu.org>
date Tue, 16 Jul 2024 21:15:59 -0400
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/core/byte_stream.cc	Tue Jul 16 21:15:59 2024 -0400
@@ -0,0 +1,31 @@
+#include "core/byte_stream.h"
+
+ByteStream::ByteStream(std::uint8_t *bytes, std::size_t size) {
+	bytes_ = bytes;
+	size_ = size;
+}
+
+void ByteStream::ResetOffset() {
+	offset_ = 0;
+}
+
+void ByteStream::SetEndianness(ByteStream::ByteOrder endian) {
+	endian_ = endian;
+}
+
+bool ByteStream::ReadString(std::string& str, std::size_t size) {
+	if (offset_ + size >= size_)
+		return false;
+
+	str.assign(reinterpret_cast<const char *>(bytes_ + offset_), size);
+	Advance(size);
+	return true;
+}
+
+bool ByteStream::Advance(std::size_t amount) {
+	if (offset_ + amount >= size_)
+		return false;
+
+	offset_ += amount;
+	return true;
+}