Botcraft 1.21.4
Loading...
Searching...
No Matches
ProtocolCraft::Internal::Conditioned< T, Condition, StoredAsOptional > Struct Template Reference

A type wrapper to conditionally serialize a type. More...

#include <Templates.hpp>

Public Types

using type = T
 

Static Public Member Functions

static bool Evaluate (const typename GetClassFromConditionPtr< decltype(Condition)>::Class *t)
 

Static Public Attributes

static constexpr bool stored_as_optional = StoredAsOptional
 

Detailed Description

template<typename T, auto Condition, bool StoredAsOptional = true>
struct ProtocolCraft::Internal::Conditioned< T, Condition, StoredAsOptional >

A type wrapper to conditionally serialize a type.

Template Parameters
TUnderlying type, can be VarType or DiffType too
ConditionA condition function pointer to a non static const class member function returning a bool, i.e. bool(*Class::Condition)(const Class*) const
StoredAsOptionalIf true, T will be stored as empty std::optional when Condition is not satisfied instead of default initialized values

Definition at line 82 of file Templates.hpp.

Member Typedef Documentation

◆ type

template<typename T , auto Condition, bool StoredAsOptional = true>
using ProtocolCraft::Internal::Conditioned< T, Condition, StoredAsOptional >::type = T

Definition at line 84 of file Templates.hpp.

Member Function Documentation

◆ Evaluate()

template<typename T , auto Condition, bool StoredAsOptional = true>
static bool ProtocolCraft::Internal::Conditioned< T, Condition, StoredAsOptional >::Evaluate ( const typename GetClassFromConditionPtr< decltype(Condition)>::Class *  t)
inlinestatic

Definition at line 88 of file Templates.hpp.

Member Data Documentation

◆ stored_as_optional

template<typename T , auto Condition, bool StoredAsOptional = true>
constexpr bool ProtocolCraft::Internal::Conditioned< T, Condition, StoredAsOptional >::stored_as_optional = StoredAsOptional
staticconstexpr

Definition at line 85 of file Templates.hpp.


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