#include "cru/common/io/Stream.h" namespace cru::io { Index Stream::Tell() { return Seek(0, SeekOrigin::Current); } void Stream::Rewind() { Seek(0, SeekOrigin::Begin); } Index Stream::GetSize() { Index current_position = Tell(); Seek(0, SeekOrigin::End); Index size = Tell(); Seek(current_position, SeekOrigin::Begin); return size; } Index Stream::Read(std::byte* buffer, Index size) { return Read(buffer, 0, size); } Index Stream::Write(const std::byte* buffer, Index size) { return Write(buffer, 0, size); } Index Stream::Write(const char* buffer, Index offset, Index size) { return Write(reinterpret_cast(buffer), offset, size); } Index Stream::Write(const char* buffer, Index size) { return Write(reinterpret_cast(buffer), size); } std::vector Stream::ReadAll() { std::vector buffer; buffer.resize(GetSize()); Read(buffer.data(), 0, buffer.size()); return buffer; } String Stream::ReadAllAsString() { auto buffer = ReadAll(); return String::FromUtf8(reinterpret_cast(buffer.data()), buffer.size()); } void Stream::Flush() {} void Stream::Close() {} } // namespace cru::io