2#include "gaia/config/config.h"
4#include "gaia/mem/mem_alloc.h"
5#include "gaia/ser/ser_buffer_binary.h"
6#include "gaia/ser/ser_rt.h"
16 void align(uint32_t size, serialization_type_id
id) {
17 const auto pos = m_buffer.tell();
18 const auto posAligned = mem::align(pos, serialization_type_size(
id, size));
19 const auto offset = posAligned - pos;
20 m_buffer.reserve(offset + size);
21 m_buffer.skip(offset);
26 void save_raw(
const void* src, uint32_t size, serialization_type_id
id) {
28 m_buffer.save_raw((
const char*)src, size,
id);
32 void load_raw(
void* src, uint32_t size, serialization_type_id
id) {
34 m_buffer.load_raw((
char*)src, size,
id);
39 return (
const char*)m_buffer.data();
49 return m_buffer.tell();
54 return m_buffer.bytes();
65 auto s = make_serializer(*
this);
72 auto s = make_serializer(*
this);
Default in-memory binary backend used by ECS world/runtime serialization. Provides aligned raw read/w...
Definition ser_binary.h:12
void load_raw(void *src, uint32_t size, serialization_type_id id)
Reads raw bytes with type-aware alignment.
Definition ser_binary.h:32
void load(T &data)
Convenience typed load routed through serializer traversal.
Definition ser_binary.h:71
uint32_t tell() const
Returns current stream cursor position in bytes.
Definition ser_binary.h:48
void reset()
Clears buffered data and resets stream position.
Definition ser_binary.h:43
void save(const T &data)
Convenience typed save routed through serializer traversal.
Definition ser_binary.h:64
void save_raw(const void *src, uint32_t size, serialization_type_id id)
Writes raw bytes with type-aware alignment.
Definition ser_binary.h:26
uint32_t bytes() const
Returns total buffered byte count.
Definition ser_binary.h:53
void seek(uint32_t pos)
Moves stream cursor to an absolute byte position.
Definition ser_binary.h:58
const char * data() const
Returns pointer to serialized bytes.
Definition ser_binary.h:38
Minimal in-memory binary serializer. It stores raw bytes only (no schema, versioning,...
Definition ser_buffer_binary.h:159