Gaia-ECS v0.9.3
A simple and powerful entity component system
Loading...
Searching...
No Matches
gaia::ser::detail Namespace Reference

Compile-time serialization entry points. Uses static dispatch and concrete writer/reader types (no 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. More...

Classes

struct  has_bytes_fn
 
struct  has_bytes_fn< T, std::void_t< decltype(std::declval< const T & >().bytes())> >
 
struct  has_data_ptr
 
struct  has_data_ptr< T, std::void_t< decltype(std::declval< const T & >().data())> >
 
struct  has_load_raw_ptr
 
struct  has_load_raw_ptr< T, std::void_t< decltype(std::declval< T & >().load_raw((void *) nullptr, uint32_t{}, ser::serialization_type_id{}))> >
 
struct  has_reset_fn
 
struct  has_reset_fn< T, std::void_t< decltype(std::declval< T & >().reset())> >
 
struct  has_save_raw_ptr
 
struct  has_save_raw_ptr< T, std::void_t< decltype(std::declval< T & >().save_raw((const void *) nullptr, uint32_t{}, ser::serialization_type_id{}))> >
 
struct  has_seek_fn
 
struct  has_seek_fn< T, std::void_t< decltype(std::declval< T & >().seek(uint32_t{}))> >
 
struct  has_tell_fn
 
struct  has_tell_fn< T, std::void_t< decltype(std::declval< const T & >().tell())> >
 
class  ser_buffer_binary_impl
 In-memory binary read/write stream used by compile-time and runtime serializers. More...
 
class  size_counter
 Minimal writer used by ser::bytes to count produced bytes without storing data. More...
 

Functions

template<typename Serializer , typename T , typename SaveTrivial >
void save_dispatch (Serializer &s, const T &arg, SaveTrivial &&saveTrivial)
 
template<typename Serializer , typename T , typename LoadTrivial >
void load_dispatch (Serializer &s, T &arg, LoadTrivial &&loadTrivial)
 
template<typename Writer , typename T >
void save_one (Writer &s, const T &arg)
 
template<typename Reader , typename T >
void load_one (Reader &s, T &arg)
 
template<typename T >
void copy_field_bytes (uint8_t *pFieldData, uint32_t size, const T &v)
 
template<typename TInt >
bool read_schema_field_json_int (ser_json &reader, uint8_t *pFieldData, uint32_t size, bool &ok)
 
template<typename TFloat >
bool read_schema_field_json_float (ser_json &reader, uint8_t *pFieldData, uint32_t size, bool &ok)
 
bool write_schema_field_json (ser_json &writer, const uint8_t *pFieldData, serialization_type_id type, uint32_t size)
 
bool read_schema_field_json (ser_json &reader, uint8_t *pFieldData, serialization_type_id type, uint32_t size, bool &ok)
 
template<typename TByteSink >
bool parse_json_byte_array (ser_json &reader, TByteSink &out)
 

Variables

static constexpr uint32_t SerializationBufferCapacityIncreaseSize = 128U
 

Detailed Description

Compile-time serialization entry points. Uses static dispatch and concrete writer/reader types (no 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.