Add an istream class that wraps raw data buffer

This commit is contained in:
Nikita Lisitsa 2020-08-30 21:27:10 +03:00
parent 3d3e6c583b
commit 3136c3b239

View file

@ -0,0 +1,31 @@
#pragma once
#include <iostream>
namespace psemek::util
{
struct memory_istream
: std::istream
{
memory_istream(std::string_view data)
: b_(data)
{
rdbuf(&b_);
}
private:
struct buf
: std::streambuf
{
buf(std::string_view data)
{
char * p = const_cast<char *>(data.data());
setg(p, p, p + data.size());
}
};
buf b_;
};
}