70 std::vector<unsigned char> file_content = std::vector<unsigned char>(
71 std::istream_iterator<unsigned char>(is),
72 std::istream_iterator<unsigned char>()
76 size_t length = file_content.size();
78 v = ReadData<Value>(iter, length);
86 if (length > 10 && *iter == 0x1F && *(iter + 1) == 0x8B)
88 const std::vector<unsigned char> decompressed =
ExtractGZip(iter, length);
90 size_t decomp_length = decompressed.size();
103 if (!is<TagCompound>())
105 throw std::runtime_error(
"Error reading NBT value, not starting with compound");
void WriteUnnamedImpl(WriteContainer &container) const
virtual void ReadImpl(ReadIterator &iter, size_t &length) override
void ReadUnnamedImpl(ReadIterator &iter, size_t &length)
virtual ~UnnamedValue() override
virtual void WriteImpl(WriteContainer &container) const override
virtual void ReadImpl(ReadIterator &iter, size_t &length) override
virtual ~Value() override
virtual void ReadImpl(ReadIterator &iter, size_t &length) override
std::istream & operator>>(std::istream &is, Value &v)
std::vector< unsigned char > ExtractGZip(std::vector< unsigned char >::const_iterator &iter, std::size_t &length)
std::vector< unsigned char > WriteContainer
std::vector< unsigned char >::const_iterator ReadIterator