// This Header is auto generated by BDSLiteLoader Toolchain
#pragma once
#define AUTO_GENERATED
#include "../Global.h"

#define BEFORE_EXTRA

#undef BEFORE_EXTRA

class ReadOnlyBinaryStream {

#define AFTER_EXTRA
// Add Member There
public:
    size_t      readPointer{};
    bool mHasOverflowed;
    std::string ownBuf, *pBuf;

public:
    LIAPI std::string const& getData() const;
    LIAPI size_t getLength() const;
    LIAPI size_t getReadPointer() const;
    LIAPI size_t getUnreadLength() const;
    LIAPI void setReadPointer(std::size_t size);

    // inline void readType(mce::UUID& uuid)
    // {
    //     dAccess<uint64_t, 0>(&uuid) = getUnsignedInt64();
    //     dAccess<uint64_t, 8>(&uuid) = getUnsignedInt64();
    // }
    LIAPI std::unique_ptr<class CompoundTag> getCompoundTag();
#undef AFTER_EXTRA
#ifndef DISABLE_CONSTRUCTOR_PREVENTION_READONLYBINARYSTREAM
public:
    class ReadOnlyBinaryStream& operator=(class ReadOnlyBinaryStream const &) = delete;
    ReadOnlyBinaryStream(class ReadOnlyBinaryStream const &) = delete;
    ReadOnlyBinaryStream() = delete;
#endif

public:
    /*0*/ virtual ~ReadOnlyBinaryStream();
    /*1*/ virtual bool read(void *, unsigned __int64);
#ifdef ENABLE_VIRTUAL_FAKESYMBOL_READONLYBINARYSTREAM
#endif
    MCAPI ReadOnlyBinaryStream(std::string const &, bool);
    MCAPI bool canReadBool() const;
    MCAPI unsigned char getByte();
    MCAPI float getFloat();
    MCAPI int getSignedBigEndianInt();
    MCAPI short getSignedShort();
    MCAPI void getString(std::string &);
    MCAPI std::string getString();
    MCAPI unsigned char getUnsignedChar();
    MCAPI unsigned int getUnsignedInt();
    MCAPI unsigned short getUnsignedShort();
    MCAPI unsigned int getUnsignedVarInt();
    MCAPI unsigned __int64 getUnsignedVarInt64();

};