diff --git a/libs/util/include/psemek/util/memory_stream.hpp b/libs/util/include/psemek/util/memory_stream.hpp new file mode 100644 index 00000000..03f05385 --- /dev/null +++ b/libs/util/include/psemek/util/memory_stream.hpp @@ -0,0 +1,31 @@ +#pragma once + +#include + +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(data.data()); + setg(p, p, p + data.size()); + } + }; + + buf b_; + }; + +}