diff --git a/Bigfoot/Sources/Engine/Include/Engine/BigFile/Asset/Asset.hpp b/Bigfoot/Sources/Engine/Include/Engine/BigFile/Asset/Asset.hpp index e0fe46d..68df695 100644 --- a/Bigfoot/Sources/Engine/Include/Engine/BigFile/Asset/Asset.hpp +++ b/Bigfoot/Sources/Engine/Include/Engine/BigFile/Asset/Asset.hpp @@ -29,21 +29,30 @@ class Asset { } + Asset(const Asset& p_asset) = default; + Asset(Asset&& p_asset) = default; + + ~Asset() = default; + + [[nodiscard]] const Bigfoot::Flat::AssetHeaderT& GetHeader() const { return m_header; } + [[nodiscard]] const typename FLAT_ASSET::NativeTableType& GetAsset() const { return m_asset; } + [[nodiscard]] typename FLAT_ASSET::NativeTableType& GetAsset() { return m_asset; } + [[nodiscard]] eastl::vector Pack() const { flatbuffers::FlatBufferBuilder assetFbb; @@ -70,6 +79,7 @@ class Asset m_header.version = p_version; } + [[nodiscard]] static std::uint64_t GetTypeID() { static const std::uint64_t typeID = rapidhash(FLAT_ASSET::GetFullyQualifiedName(), @@ -77,12 +87,19 @@ class Asset return typeID; } + [[nodiscard]] static eastl::string_view GetTypeName() { return FLAT_ASSET::GetFullyQualifiedName(); } + [[nodiscard]] + Asset& operator=(const Asset& p_asset) = default; + [[nodiscard]] + Asset& operator=(Asset&& p_asset) = default; + private: + [[nodiscard]] static Bigfoot::Flat::AssetHeaderT UnPackHeader(const eastl::span p_flatbuffer) { Bigfoot::Flat::AssetHeaderT header; @@ -92,6 +109,7 @@ class Asset return header; } + [[nodiscard]] static typename FLAT_ASSET::NativeTableType UnpackAsset(const eastl::span p_flatbuffer) { typename FLAT_ASSET::NativeTableType asset; diff --git a/Bigfoot/Tests/Engine/Include/EngineTests/BigFile/Asset/AssetA.hpp b/Bigfoot/Tests/Engine/Include/EngineTests/BigFile/Asset/AssetA.hpp index c91c1e1..0c02c27 100644 --- a/Bigfoot/Tests/Engine/Include/EngineTests/BigFile/Asset/AssetA.hpp +++ b/Bigfoot/Tests/Engine/Include/EngineTests/BigFile/Asset/AssetA.hpp @@ -21,6 +21,16 @@ class AssetA: public Asset Asset(p_flatbuffer) { } + + AssetA(const AssetA& p_asset) = default; + AssetA(AssetA&& p_asset) = default; + + ~AssetA() = default; + + [[nodiscard]] + AssetA& operator=(const AssetA& p_asset) = default; + [[nodiscard]] + AssetA& operator=(AssetA&& p_asset) = default; }; } // namespace Bigfoot