SDEngine
Game Engine
Loading...
Searching...
No Matches
sd::Serializer Class Reference

#include <serialization.hpp>

Public Member Functions

 Serializer (std::vector< std::byte > &buffer)
 
template<typename T >
requires std::is_arithmetic_v<T>
void write (T value)
 
template<typename T , usize N>
void write (const T(&arr)[N])
 
template<typename T , usize N>
void write (const std::array< T, N > &arr)
 
void write (const std::string &value)
 
template<typename T >
requires std::is_arithmetic_v<T>
void write (const std::vector< T > &vec)
 
void write (const void *data, const usize size)
 
void write (const Serializable &obj)
 
void write (const VLA::Matrix4x4f &m)
 
template<typename T >
requires std::is_arithmetic_v<T>
read ()
 
template<typename T , usize N>
void read (T(&arr)[N])
 
template<typename T , usize N>
void read (std::array< T, N > &arr)
 
std::string read_string ()
 
template<typename T >
requires std::is_arithmetic_v<T>
void read (std::vector< T > &vec)
 
void read (Serializable &obj)
 
VLA::Matrix4x4f read ()
 
void reset_offset ()
 
usize get_offset () const
 
void SetOffset (usize offset)
 
usize get_written_size () const
 
void clear ()
 
std::span< std::byte > get_span () const
 

Private Attributes

std::vector< std::byte > & m_buffer
 
usize m_read_offset = 0
 

Detailed Description

Writes and reads data to a byte vector Offset from start can be set with SetOffset()

To read from beginning:

s.ResetOffset();
// Or equivalently
s.SetOffset(0);
Definition serialization.hpp:36
constexpr T g_type_max
Definition types.hpp:21

Constructor & Destructor Documentation

◆ Serializer()

sd::Serializer::Serializer ( std::vector< std::byte > &  buffer)
inlineexplicit

Member Function Documentation

◆ clear()

void sd::Serializer::clear ( )
inline

◆ get_offset()

usize sd::Serializer::get_offset ( ) const
inline

◆ get_span()

std::span< std::byte > sd::Serializer::get_span ( ) const
inline

◆ get_written_size()

usize sd::Serializer::get_written_size ( ) const
inline

◆ read() [1/6]

template<typename T >
requires std::is_arithmetic_v<T>
T sd::Serializer::read ( )
inline

◆ read() [2/6]

VLA::Matrix4x4f sd::Serializer::read ( )
inline

◆ read() [3/6]

void sd::Serializer::read ( Serializable obj)
inline

◆ read() [4/6]

template<typename T , usize N>
void sd::Serializer::read ( std::array< T, N > &  arr)
inline

◆ read() [5/6]

template<typename T >
requires std::is_arithmetic_v<T>
void sd::Serializer::read ( std::vector< T > &  vec)
inline

◆ read() [6/6]

template<typename T , usize N>
void sd::Serializer::read ( T(&)  arr[N])
inline

◆ read_string()

std::string sd::Serializer::read_string ( )
inline

◆ reset_offset()

void sd::Serializer::reset_offset ( )
inline

◆ SetOffset()

void sd::Serializer::SetOffset ( usize  offset)
inline

◆ write() [1/8]

void sd::Serializer::write ( const Serializable obj)
inline

◆ write() [2/8]

template<typename T , usize N>
void sd::Serializer::write ( const std::array< T, N > &  arr)
inline

◆ write() [3/8]

void sd::Serializer::write ( const std::string &  value)
inline

◆ write() [4/8]

template<typename T >
requires std::is_arithmetic_v<T>
void sd::Serializer::write ( const std::vector< T > &  vec)
inline

◆ write() [5/8]

template<typename T , usize N>
void sd::Serializer::write ( const T(&)  arr[N])
inline

◆ write() [6/8]

void sd::Serializer::write ( const VLA::Matrix4x4f &  m)
inline

◆ write() [7/8]

void sd::Serializer::write ( const void data,
const usize  size 
)
inline

◆ write() [8/8]

template<typename T >
requires std::is_arithmetic_v<T>
void sd::Serializer::write ( value)
inline

Member Data Documentation

◆ m_buffer

std::vector<std::byte>& sd::Serializer::m_buffer
private

◆ m_read_offset

usize sd::Serializer::m_read_offset = 0
private

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