Sen API
Sen Libraries
Loading...
Searching...
No Matches
sen::VariantTraitsBase< T > Struct Template Reference

Base class for variant traits. More...

#include <variant_traits.h>

Inheritance diagram for sen::VariantTraitsBase< T >:

Static Public Member Functions

template<std::size_t index>
static bool tryPrintField (std::ostream &out, const char *typeName, const T &val, bool requiresNewline)

Static Public Attributes

static constexpr bool available = true

Static Protected Member Functions

template<std::size_t index>
static bool assignFieldByName (const char *currentType, const char *expectedTypeLong, const char *expectedTypeShort, const char *expectedAliasTypeShort, const Var &fieldValue, T &val)
template<std::size_t index>
static void assignField (const Var &fieldValue, T &val)
template<std::size_t index>
static bool getFieldSerializedSize (const T &val, uint32_t key, uint32_t &result)
template<std::size_t index>
static bool tryWriteField (OutputStream &out, const T &val, uint32_t key)
template<std::size_t index>
static void readField (InputStream &in, T &val)
template<std::size_t index>
static bool tryFieldValueToVariant (const T &val, Var &var, std::shared_ptr< Var > valueVar, uint32_t key)
static void throwEmptyStructError (const char *name)
static void expectAtLeastOneField (const char *name, const Span< uint16_t > &fields)
static void throwNonNativeField (const char *variantName, const char *fieldName)
static void throwInvalidFieldIndex (const char *variantName, uint16_t index)
static std::tuple< const char *, const Var * > getTypeAndValue (const Var &var, ConstTypeHandle< VariantType > meta)

Detailed Description

template<typename T>
struct sen::VariantTraitsBase< T >

Base class for variant traits.

Member Function Documentation

◆ tryPrintField()

template<typename T>
template<std::size_t index>
bool sen::VariantTraitsBase< T >::tryPrintField ( std::ostream & out,
const char * typeName,
const T & val,
bool requiresNewline )
inlinestaticnodiscard

◆ assignFieldByName()

template<typename T>
template<std::size_t index>
bool sen::VariantTraitsBase< T >::assignFieldByName ( const char * currentType,
const char * expectedTypeLong,
const char * expectedTypeShort,
const char * expectedAliasTypeShort,
const Var & fieldValue,
T & val )
inlinestaticnodiscardprotected

◆ assignField()

template<typename T>
template<std::size_t index>
void sen::VariantTraitsBase< T >::assignField ( const Var & fieldValue,
T & val )
inlinestaticprotected

◆ getFieldSerializedSize()

template<typename T>
template<std::size_t index>
bool sen::VariantTraitsBase< T >::getFieldSerializedSize ( const T & val,
uint32_t key,
uint32_t & result )
inlinestaticnodiscardprotected

◆ tryWriteField()

template<typename T>
template<std::size_t index>
bool sen::VariantTraitsBase< T >::tryWriteField ( OutputStream & out,
const T & val,
uint32_t key )
inlinestaticnodiscardprotected

◆ readField()

template<typename T>
template<std::size_t index>
void sen::VariantTraitsBase< T >::readField ( InputStream & in,
T & val )
inlinestaticprotected

◆ tryFieldValueToVariant()

template<typename T>
template<std::size_t index>
bool sen::VariantTraitsBase< T >::tryFieldValueToVariant ( const T & val,
Var & var,
std::shared_ptr< Var > valueVar,
uint32_t key )
inlinestaticnodiscardprotected

◆ throwEmptyStructError()

void sen::VariantTraitsBaseBase::throwEmptyStructError ( const char * name)
staticprotectedinherited

◆ expectAtLeastOneField()

void sen::VariantTraitsBaseBase::expectAtLeastOneField ( const char * name,
const Span< uint16_t > & fields )
staticprotectedinherited

◆ throwNonNativeField()

void sen::VariantTraitsBaseBase::throwNonNativeField ( const char * variantName,
const char * fieldName )
staticprotectedinherited

◆ throwInvalidFieldIndex()

void sen::VariantTraitsBaseBase::throwInvalidFieldIndex ( const char * variantName,
uint16_t index )
staticprotectedinherited

◆ getTypeAndValue()

std::tuple< const char *, const Var * > sen::VariantTraitsBaseBase::getTypeAndValue ( const Var & var,
ConstTypeHandle< VariantType > meta )
staticnodiscardprotectedinherited

Member Data Documentation

◆ available

template<typename T>
bool sen::VariantTraitsBase< T >::available = true
staticconstexpr

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