view 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 source

#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;
}