Support advancing & retrieving internal pointer in io::memory_stream

This commit is contained in:
Nikita Lisitsa 2022-06-13 00:17:40 +03:00
parent f93383f06d
commit 9a47155284

View file

@ -55,6 +55,15 @@ namespace psemek::io
std::size_t read(char * p, std::size_t size) override;
void advance(std::size_t n)
{
if (end_ - begin_ < n)
throw io::istream_end{};
begin_ += n;
}
char const * data() const { return begin_; }
private:
char const * begin_ = nullptr;
char const * end_ = nullptr;
@ -101,6 +110,15 @@ namespace psemek::io
std::swap(end_, s.end_);
}
void advance(std::size_t n)
{
if (end_ - begin_ < n)
throw io::istream_end{};
begin_ += n;
}
char * data() const { return begin_; }
std::size_t write(char const * p, std::size_t size) override;
private: