Apparatus
Version 1.23
ECS data-oriented workflow for Unreal Engine.
|
The execution paradigm functionality. More...
#include <algorithm>
#include "CoreMinimal.h"
Classes | |
struct | FParadigmIndicator |
The execution paradigm mark. More... | |
struct | TParadigm< Paradigm > |
A type wrap for the paradigm enumeration. More... | |
Typedefs | |
using | FPoliteParadigm = TParadigm< EParadigm::Polite > |
using | FPoliteSafeParadigm = TParadigm< EParadigm::PoliteSafe > |
using | FHarshSafeParadigm = TParadigm< EParadigm::HarshSafe > |
using | FPoliteUnsafeParadigm = TParadigm< EParadigm::PoliteUnsafe > |
using | FHarshUnsafeParadigm = TParadigm< EParadigm::HarshUnsafe > |
using | FDefaultParadigm = TParadigm< EParadigm::Default > |
using | FDefaultBlueprintParadigm = TParadigm< EParadigm::DefaultBlueprint > |
using | FPortableParadigm = TParadigm< EParadigm::DefaultPortable > |
template<typename ParadigmT > | |
using | TPoliteParadigm = TParadigm< MakePolite(ParadigmT::Value)> |
Guarantee a paradigm to be polite. | |
template<typename ParadigmT > | |
using | THarshParadigm = TParadigm< MakeHarsh(ParadigmT::Value)> |
Guarantee a paradigm to be harsh. | |
template<EParadigm Paradigm, typename ResultT = EApparatusStatus> | |
using | TEnableIfUnsafe = typename std::enable_if< IsUnsafe(Paradigm), ResultT >::type |
Enable the method in unsafe mode only. | |
template<EParadigm Paradigm, bool Condition, typename ResultT = EApparatusStatus> | |
using | TEnableIfUnsafeOr = typename std::enable_if< IsUnsafe(Paradigm)||Condition, ResultT >::type |
Enable the method in unsafe mode or in case of a condition. | |
Enumerations | |
enum class | EParadigm { None = 0 , Auto = 0 , Polite = 1 , OptionsMask = 0x1 , Internal = 0x1 << 1 , HarshInternal = Internal , InternalHarsh = HarshInternal , PoliteInternal = Polite | Internal , InternalPolite = Internal | Polite , Unsafe = 0x2 << 1 , HarshUnsafe = Unsafe , UnsafeHarsh = HarshUnsafe , PoliteUnsafe = Polite | Unsafe , UnsafePolite = Unsafe | Polite , Safe = 0x3 << 1 , HarshSafe = Safe , SafeHarsh = HarshSafe , PoliteSafe = Polite | Safe , SafePolite = Safe | Polite , LevelMask = 0x3 << 1 , Default = HarshSafe , DefaultInternal = HarshInternal , DefaultPortable = SafePolite , DefaultBlueprint = SafePolite } |
The type of paradigm for executing. More... | |
Functions | |
constexpr EParadigm | operator+ (const EParadigm A, const EParadigm B) |
Combine two paradigm into a single one. | |
EParadigm & | operator+= (EParadigm &A, const EParadigm B) |
Accumulate to a paradigm. | |
template<typename... Ts> | |
constexpr EParadigm | ParadigmCombine (const EParadigm DefaultParadigm=EParadigm::Default) |
Combine all of the supplied paradigm types. | |
constexpr bool | IsPolite (const EParadigm Paradigm) |
Check if the paradigm is polite. | |
template<typename ParadigmT > | |
constexpr bool | IsPolite () |
Check if the paradigm type is polite. | |
constexpr bool | IsHarsh (const EParadigm Paradigm) |
Check if the paradigm is harsh. | |
template<typename ParadigmT > | |
constexpr bool | IsHarsh () |
Check if the paradigm type is harsh. | |
constexpr bool | IsInternal (const EParadigm Paradigm) |
Check if the paradigm is internal. | |
template<typename ParadigmT > | |
constexpr bool | IsInternal () |
Check if the paradigm type is internal. | |
constexpr bool | IsUnsafe (const EParadigm Paradigm) |
Check if a paradigm an unsafe one. | |
template<typename ParadigmT > | |
constexpr bool | IsUnsafe () |
Check if the paradigm type is unsafe. | |
constexpr bool | IsSafe (const EParadigm Paradigm) |
Check if a paradigm a safe one. | |
template<typename ParadigmT > | |
constexpr bool | IsSafe () |
Check if a paradigm type is a safe one. | |
constexpr EParadigm | MakePolite (const EParadigm Paradigm) |
Guarantee a paradigm to be polite. | |
constexpr EParadigm | MakeSafe (const EParadigm Paradigm) |
Guarantee a paradigm to be safe (or more). | |
constexpr EParadigm | MakeUnsafe (const EParadigm Paradigm) |
Guarantee a paradigm to be unsafe (or less). | |
constexpr EParadigm | MakeInternal (const EParadigm Paradigm) |
Guarantee a paradigm to be internal. | |
constexpr EParadigm | MakeHarsh (const EParadigm Paradigm) |
Guarantee a paradigm to be harsh. | |
The execution paradigm functionality.
using FDefaultParadigm = TParadigm<EParadigm::Default> |
using FPoliteParadigm = TParadigm<EParadigm::Polite> |
using TEnableIfUnsafe = typename std::enable_if<IsUnsafe(Paradigm), ResultT>::type |
Enable the method in unsafe mode only.
Paradigm | The paradigm in question. |
ResultT | The type of the return value. |
using TEnableIfUnsafeOr = typename std::enable_if<IsUnsafe(Paradigm) || Condition, ResultT>::type |
Enable the method in unsafe mode or in case of a condition.
Paradigm | The paradigm in question. |
Condition | The condition to also check for. |
ResultT | The type of the return value. |
using THarshParadigm = TParadigm<MakeHarsh(ParadigmT::Value)> |
Guarantee a paradigm to be harsh.
ParadigmT | The paradigm type to assess. |
using TPoliteParadigm = TParadigm<MakePolite(ParadigmT::Value)> |
Guarantee a paradigm to be polite.
ParadigmT | The paradigm type to assess. |
|
strong |
The type of paradigm for executing.
Enumerator | |
---|---|
None | "Not an execution paradigm" identifier. Also serves the purpose of an automatic paradigm derivation. |
Auto | A mnemonic synonym for EParadigm::None. |
Polite | A flag to return statuses instead of firing assertion failures. |
OptionsMask | The paradigm options mask. |
Internal | |
HarshInternal | Harsh internal paradigm. |
InternalHarsh | Internal harsh version. |
PoliteInternal | Polite internal version. |
InternalPolite | Internal polite version. |
Unsafe | Allows for direct access to the data even through non-solid subject handles. |
HarshUnsafe | Harsh unsafe version. |
UnsafeHarsh | Unsafe harsh version. |
PoliteUnsafe | Polite unsafe version. |
UnsafePolite | Unsafe polite version. |
Safe | Disallowing direct data access for non-solid subjects. |
HarshSafe | Harsh safe is just safe. |
SafeHarsh | Safe harsh synonym. |
PoliteSafe | Polite safe synonym. |
SafePolite | Safe polite synonym. |
LevelMask | The safety level mask. |
Default | The default paradigm for public APIs. |
DefaultInternal | The default paradigm for non-public APIs. |
DefaultPortable | The default paradigm for maximum dynamic (virtual) APIs. |
DefaultBlueprint | The default paradigm for Blueprint APIs. |
|
inlineconstexpr |
Check if the paradigm type is harsh.
ParadigmT | The paradigm type to examine. |
Check if the paradigm is harsh.
Paradigm | The paradigm to examine. |
|
inlineconstexpr |
Check if the paradigm type is internal.
ParadigmT | The paradigm type to examine. |
Check if the paradigm is internal.
Paradigm | The paradigm to examine. |
|
inlineconstexpr |
Check if the paradigm type is polite.
ParadigmT | The paradigm type to examine. |
Check if the paradigm is polite.
Paradigm | The paradigm to examine. |
|
inlineconstexpr |
Check if a paradigm type is a safe one.
ParadigmT | The paradigm type to examine. |
Check if a paradigm a safe one.
Paradigm | The paradigm to examine. |
|
inlineconstexpr |
Check if the paradigm type is unsafe.
ParadigmT | The paradigm type to examine. |
Check if a paradigm an unsafe one.
Paradigm | The paradigm to examine. |
Guarantee a paradigm to be harsh.
Paradigm | The paradigm to alter. |
Guarantee a paradigm to be internal.
Paradigm | The paradigm to alter. |
Guarantee a paradigm to be polite.
Paradigm | The paradigm to alter. |
Guarantee a paradigm to be safe (or more).
Paradigm | The paradigm to alter. |
Guarantee a paradigm to be unsafe (or less).
Paradigm | The paradigm to alter. |
Combine two paradigm into a single one.
The safest level will get propagated.
A | The first paradigm to combine. |
B | The second paradigm to combine. |
Accumulate to a paradigm.
The safest level will get propagated.
A | The first paradigm to combine and receive the result. |
B | The second paradigm to accumulate. |
|
inlineconstexpr |
Combine all of the supplied paradigm types.
Ts | The paradigm types to combine. The non-paradigm types are silently ignored. |
DefaultParadigm | The default paradigm |