Symphony Of Empires
serializer.hpp File Reference
#include <cstddef>
#include <cstdint>
#include <cstring>
#include <exception>
#include <numeric>
#include <string>
#include <vector>
#include <memory>
#include <optional>
#include <type_traits>
#include <bitset>
#include <limits>
#include <concepts>
#include <glm/glm.hpp>
#include "eng3d/utils.hpp"
#include "eng3d/string.hpp"
#include "eng3d/rectangle.hpp"
#include "eng3d/freelist.hpp"
Include dependency graph for serializer.hpp:

Go to the source code of this file.

Classes

class  Eng3D::Deser::Exception
 The purpouse of the serializer is to serialize objects onto a byte stream that can be transfered onto the disk or over the network. Should the object have any pointers - they would need to be converted to indexes accordingly for proper transmission. More...
 
struct  Eng3D::Deser::Archive
 Base class that serves as archiver, stores (in memory) the data required for serialization/deserialization. More...
 
struct  Eng3D::Deser::CondConstType< true, T >
 
struct  Eng3D::Deser::CondConstType< false, T >
 
struct  Eng3D::Deser::Serializer< T >
 A serializer (base class) which can be used to serialize objects and create per-object optimized classes. More...
 
struct  Eng3D::Deser::SerializerMemcpy< T >
 A serializer optimized to memcpy directly the element into the byte stream use only when the object can be copied without modification (i.e a class full of ints) The elements must have a fixed size for this to work. More...
 
struct  Eng3D::Deser::Serializer< T >
 Non-contigous serializer for STL containers This serializer class works primarly with containers whose memory is contiguous. More...
 
struct  Eng3D::Deser::Serializer< bool >
 
struct  Eng3D::Deser::Serializer<::std::pair< T, U > >
 Pair serializers. More...
 
struct  Eng3D::Deser::SerializerBitset< T, N >
 
struct  Eng3D::Deser::Serializer<::std::bitset< bits > >
 
struct  Eng3D::Deser::Serializer< Eng3D::StringRef >
 
struct  Eng3D::Deser::Serializer< Eng3D::Rectangle >
 
struct  Eng3D::Deser::Serializer< std::optional< T > >
 
struct  Eng3D::Deser::Serializer< Eng3D::Freelist< T > >
 

Namespaces

 Eng3D
 
 Eng3D::Deser
 

Functions

template<bool is_serialize, typename T >
void Eng3D::Deser::deser_dynamic (Eng3D::Deser::Archive &ar, T &obj)
 Template generic (de)-serializer. More...
 
template<bool is_serialize = true, typename T >
void Eng3D::Deser::deser_dynamic (Eng3D::Deser::Archive &ar, const T &obj)
 
template<typename T >
void Eng3D::Deser::serialize (Eng3D::Deser::Archive &ar, const T &obj)
 
template<typename T >
void Eng3D::Deser::serialize (Eng3D::Deser::Archive &ar, T &obj)
 
template<typename T >
void Eng3D::Deser::deserialize (Eng3D::Deser::Archive &ar, T &obj)
 

Variables

template<typename T >
concept Eng3D::Deser::SerializerScalar = std::is_integral_v<T> || std::is_floating_point_v<T>
 
template<typename T >
concept Eng3D::Deser::SerializerContainer