diff options
Diffstat (limited to 'deimos/core/io.h')
-rw-r--r-- | deimos/core/io.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/deimos/core/io.h b/deimos/core/io.h index 90caadc..12de30e 100644 --- a/deimos/core/io.h +++ b/deimos/core/io.h @@ -17,5 +17,25 @@ public: virtual void Write(Span<const std::byte>) = 0;
};
+class BufferWriter : public IWriter
+{
+ std::byte* m_buffer;
+ int64_t m_size;
+ int64_t m_written = 0;
+
+public:
+ explicit BufferWriter(Span<std::byte> buffer) :
+ m_buffer{buffer.begin()},
+ m_size{buffer.size()}
+ {}
+
+ void Write(Span<const std::byte>) override;
+
+ constexpr Span<const std::byte> GetWritten() const
+ {
+ return { m_buffer, m_written };
+ }
+};
+
} // namespace deimos
|