#pragma once #include "ehs/Types.h" #include "ehs/Str.h" #include "ehs/Vec2.h" #include "ehs/BaseObj.h" namespace ehs { class Resource : public BaseObj { private: ehs::UInt_64 hashId; ehs::Str_8 id; public: Resource(); Resource(ehs::Str_8 id); Resource(Resource&& rsrc) noexcept; Resource(const Resource& rsrc); Resource& operator=(Resource&& rsrc) noexcept; Resource& operator=(const Resource& rsrc); bool operator==(ehs::UInt_64 otherHashId) const; bool operator!=(ehs::UInt_64 otherHashId) const; virtual void Release(); void SetId(ehs::Str_8 newId); ehs::UInt_64 GetHashId() const; ehs::Str_8 GetId() const; virtual bool IsValid() const; Resource* Clone() const override; }; }