Loading...
Searching...
No Matches
ml::GatherStates< ComponentManifest, Traits > Struct Template Reference

Collects all State enums from a component manifest and its traits. More...

#include <MultiCustomStateManager.h>

Public Types

using AllStatesTuple
using type = typename TupleToMultiStateManager<AllStatesTuple>::type

Detailed Description

template<typename ComponentManifest, typename... Traits>
struct ml::GatherStates< ComponentManifest, Traits >

Collects all State enums from a component manifest and its traits.

GatherStates<ComponentManifest, Traits...>::type resolves to a MultiCustomStateManager instantiation whose template parameters are exactly the non-void State enums found in:

  • ComponentManifest::State (if it exists)
  • TraitManifest::State for each Trait that has a manifest_type

ComponentCore inherits this type to get a single, unified state store for the entire component hierarchy. void entries are filtered out automatically.

Template Parameters
ComponentManifestThe component's own manifest, or void.
TraitsThe extra traits mixed into the component.
See also
MultiCustomStateManager, ComponentCore, GatherFlags

Definition at line 236 of file MultiCustomStateManager.h.

Member Typedef Documentation

◆ AllStatesTuple

template<typename ComponentManifest, typename... Traits>
using ml::GatherStates< ComponentManifest, Traits >::AllStatesTuple
Initial value:
typename FilterVoidStates<
typename extract_ManifestState<ComponentManifest>::type,
typename extract_ManifestState<
typename extract_TraitManifest<Traits>::type
>::type...
typename TupleToMultiStateManager< AllStatesTuple >::type type

Definition at line 238 of file MultiCustomStateManager.h.

◆ type

template<typename ComponentManifest, typename... Traits>
using ml::GatherStates< ComponentManifest, Traits >::type = typename TupleToMultiStateManager<AllStatesTuple>::type

Definition at line 245 of file MultiCustomStateManager.h.


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