2#include <klib/assert.hpp>
14 [[nodiscard]]
virtual auto type_name() const -> std::string_view = 0;
16 [[nodiscard]] virtual auto
load_base(std::string_view uri) const -> std::unique_ptr<
IAsset> = 0;
21template <std::derived_from<
IAsset> AssetTypeT>
27 [[nodiscard]]
virtual auto load_asset(std::string_view uri)
const -> std::unique_ptr<AssetTypeT> = 0;
30 [[nodiscard]]
auto type_name() const -> std::string_view final {
return util::demangled_name<AssetTypeT>(); }
31 [[nodiscard]]
auto type_index() const -> std::
type_index final {
return std::type_index{
typeid(AssetTypeT)}; }
32 [[nodiscard]]
auto load_base(std::string_view uri)
const -> std::unique_ptr<IAsset>
final {
return load_asset(uri); }
Interface for a particular AssetType loader.
Definition asset_type_loader.hpp:22
virtual auto load_asset(std::string_view uri) const -> std::unique_ptr< AssetTypeT >=0
Primary customization point.
Interface for asset types.
Definition asset.hpp:8
Definition asset_type_loader.hpp:12
virtual auto type_index() const -> std::type_index=0
virtual auto type_name() const -> std::string_view=0
virtual auto load_base(std::string_view uri) const -> std::unique_ptr< IAsset >=0
Definition animation.hpp:8