Gaia-ECS v1.0.0
A simple and powerful entity component system
Loading...
Searching...
No Matches
ser_ct.h File Reference

Compile-time serialization entry points. More...

#include "gaia/config/config.h"
#include <type_traits>
#include <utility>
#include "gaia/core/utility.h"
#include "gaia/ser/impl/ser_dispatch.h"
#include "gaia/ser/ser_common.h"

Go to the source code of this file.

Functions

template<typename T >
GAIA_NODISCARD uint32_t gaia::ser::bytes (const T &data)
 Calculates how many bytes data would need when serialized via ser::save. Useful when a destination storage wants to reserve memory in advance.
 
template<typename Writer , typename T >
void gaia::ser::save (Writer &writer, const T &data)
 Write data using Writer at compile-time.
 
template<typename Reader , typename T >
void gaia::ser::load (Reader &reader, T &data)
 Read data using Reader at compile-time.
 

Detailed Description

Compile-time serialization entry points.

Uses static dispatch and concrete writer/reader types without a virtual interface. Best suited when the serializer type is known at compile time. This is a binary traversal API. JSON document I/O uses ser::ser_json.

Function Documentation

◆ bytes()

template<typename T >
GAIA_NODISCARD uint32_t gaia::ser::bytes ( const T &  data)

Calculates how many bytes data would need when serialized via ser::save. Useful when a destination storage wants to reserve memory in advance.

Template Parameters
TType to measure.
Parameters
dataValue whose serialized size is measured.
Returns
Number of bytes produced by serialization.

◆ load()

template<typename Reader , typename T >
void gaia::ser::load ( Reader &  reader,
T &  data 
)

Read data using Reader at compile-time.

Template Parameters
ReaderType of reader
Parameters
readerReader used for deserialization
[out]dataData to deserialize
Warning
Reader has to implement a save function as follows: template <typename T> void load(T& arg);

◆ save()

template<typename Writer , typename T >
void gaia::ser::save ( Writer &  writer,
const T &  data 
)

Write data using Writer at compile-time.

Template Parameters
WriterType of writer
Parameters
writerWriter used for serialization
dataData to serialize
Warning
Writer has to implement a save function as follows: template <typename T> void save(const T& arg);