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.
|
| 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.
|
| |
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.
◆ 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
-
- Parameters
-
| data | Value 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
-
- Parameters
-
| reader | Reader used for deserialization |
| [out] | data | Data 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
-
- Parameters
-
| writer | Writer used for serialization |
| data | Data to serialize |
- Warning
- Writer has to implement a save function as follows:
template <typename T> void save(const T& arg);