Mercurial > minori
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; +}