Files
squeezelite-esp32/components/spotify/cspot/bell/main/io/include/StreamUtils.h
2023-03-25 16:48:41 -07:00

20 lines
521 B
C++

#pragma once
#include <cstddef>
#include <istream>
#include <streambuf>
namespace bell {
struct MemoryBuffer : std::streambuf {
MemoryBuffer(std::byte const* base, size_t size) {
std::byte* p(const_cast<std::byte*>(base));
this->setg((char*)p, (char*)p, (char*)p + size);
}
};
struct IMemoryStream : virtual MemoryBuffer, std::istream {
IMemoryStream(std::byte const* base, size_t size)
: MemoryBuffer(base, size),
std::istream(static_cast<std::streambuf*>(this)) {}
};
} // namespace bell