Loading...
Searching...
No Matches
ml::ManifestResources< Manifest > Struct Template Reference

Unified manifest resource and config accessor. More...

#include <ManifestResources.h>

Inheritance diagram for ml::ManifestResources< Manifest >:

Static Public Member Functions

template<typename EnumType>
static auto get (EnumType key) -> std::enable_if_t< !is_asset_enum< Manifest, EnumType >::value, decltype(ConfigManager< Manifest >::get(key))>
 Retrieve a config value by enum key → ConfigManager.
template<typename EnumType>
static auto get (EnumType key) -> std::enable_if_t< is_asset_enum< Manifest, EnumType >::value, const_ref_t< decltype(AssetsManager< Manifest >::get(key))> >
 Retrieve an asset by enum key → AssetsManager.
template<typename EnumType>
static std::enable_if_t< is_sounds_enum< Manifest, EnumType >::value > unload (EnumType key)
template<typename EnumType>
static std::enable_if_t< is_fonts_enum< Manifest, EnumType >::value > unload (EnumType key)
template<typename EnumType>
static std::enable_if_t< is_images_enum< Manifest, EnumType >::value > unload (EnumType key)

Detailed Description

template<typename Manifest>
struct ml::ManifestResources< Manifest >

Unified manifest resource and config accessor.

ManifestResources<Manifest> provides a single get() that routes to the correct manager based on the enum type:

Asset overloads always return const T& — so taking the address with & always yields const T* with no type deduction ambiguity:

class MyComponent : public ml::ComponentWith<MyManifest>
{
void initialization() override
{
// Reference — for auto& binding and direct use
auto& tex = Resources::get(Images::Background);
auto& font = Resources::get(Fonts::Main);
// Pointer — works directly, no intermediate variable needed
circle.setTexture(&Resources::get(Images::Icon));
sprite.setTexture(&Resources::get(Images::Background));
// Config
auto& title = Resources::get(Text::WindowTitle);
int count = Resources::get(Ints::MaxPlayers);
}
};
Component< M, Traits... > ComponentWith
Alias for Component<M, Traits...>.
Definition Component.h:150
Template Parameters
ManifestA Manifest subclass.
See also
ManifestAliases, AssetsManager, ConfigManager, ComponentWith

Definition at line 97 of file ManifestResources.h.

Member Function Documentation

◆ get() [1/2]

template<typename Manifest>
template<typename EnumType>
auto ml::ManifestResources< Manifest >::get ( EnumType key) -> std::enable_if_t< !is_asset_enum< Manifest, EnumType >::value, decltype(ConfigManager< Manifest >::get(key))>
inlinestatic

Retrieve a config value by enum key → ConfigManager.

Return type is inferred from ConfigManager::get()Text gives const std::string&, Ints gives int, etc.

Definition at line 122 of file ManifestResources.h.

◆ get() [2/2]

template<typename Manifest>
template<typename EnumType>
auto ml::ManifestResources< Manifest >::get ( EnumType key) -> std::enable_if_t< is_asset_enum< Manifest, EnumType >::value, const_ref_t< decltype(AssetsManager< Manifest >::get(key))> >
inlinestatic

Retrieve an asset by enum key → AssetsManager.

Return type is explicitly const T& — taking & gives const T* with no ambiguity, suitable for SFML functions that take const sf::Texture* etc.

Definition at line 107 of file ManifestResources.h.

◆ unload() [1/3]

template<typename Manifest>
template<typename EnumType>
std::enable_if_t< is_sounds_enum< Manifest, EnumType >::value > ml::ManifestResources< Manifest >::unload ( EnumType key)
inlinestatic

Definition at line 148 of file ManifestResources.h.

◆ unload() [2/3]

template<typename Manifest>
template<typename EnumType>
std::enable_if_t< is_fonts_enum< Manifest, EnumType >::value > ml::ManifestResources< Manifest >::unload ( EnumType key)
inlinestatic

Definition at line 141 of file ManifestResources.h.

◆ unload() [3/3]

template<typename Manifest>
template<typename EnumType>
std::enable_if_t< is_images_enum< Manifest, EnumType >::value > ml::ManifestResources< Manifest >::unload ( EnumType key)
inlinestatic

Definition at line 134 of file ManifestResources.h.


The documentation for this struct was generated from the following file: