OpenEnroth cf228e9
Loading...
Searching...
No Matches
Classes | Namespaces | Functions
CommonSerialization.h File Reference
#include <cassert>
#include <span>
#include <array>
#include <typeinfo>
#include <string>
#include "BinaryFwd.h"
#include "BinaryTags.h"
#include "BinaryConcepts.h"
#include "BinaryExceptions.h"
#include "Utility/Streams/InputStream.h"
#include "Utility/Streams/OutputStream.h"

Classes

struct  detail::AppendWrapper< Container >
 

Namespaces

namespace  detail
 

Functions

template<class T >
requires is_memcopy_serializable_v<T>
void serialize (const T &src, OutputStream *dst)
 
template<class T >
requires is_memcopy_serializable_v<T>
void deserialize (InputStream &src, T *dst)
 
template<StdSpan Span, class T = typename Span::value_type>
void deserialize (InputStream &src, Span *dst)
 
template<StdSpan Span, class T = typename Span::value_type>
void serialize (const Span &src, OutputStream *dst)
 
template<StdSpan Span, class... Tags>
void deserialize (InputStream &src, Span *dst, EachTag, const Tags &... tags)
 
template<StdSpan Span, class... Tags>
void serialize (const Span &src, OutputStream *dst, EachTag, const Tags &... tags)
 
template<class T , size_t N, class... Tags>
void serialize (const std::array< T, N > &src, OutputStream *dst, const Tags &... tags)
 
template<class T , size_t N, class... Tags>
void deserialize (InputStream &src, std::array< T, N > *dst, const Tags &... tags)
 
template<ResizableContiguousContainer Src, class... Tags>
void serialize (const Src &src, OutputStream *dst, const Tags &... tags)
 
template<ResizableContiguousContainer Dst, class... Tags>
void deserialize (InputStream &src, Dst *dst, const Tags &... tags)
 
template<ResizableContiguousContainer Src, class... Tags>
void serialize (const Src &src, OutputStream *dst, UnsizedTag, const Tags &... tags)
 
template<ResizableContiguousContainer Dst, class... Tags>
void deserialize (InputStream &src, Dst *dst, PresizedTag tag, const Tags &... tags)
 
template<ResizableContiguousContainer Dst, class... Tags>
void deserialize (InputStream &src, Dst *dst, AppendTag, const Tags &... tags)
 
void deserialize (InputStream &src, std::string *dst, NullTerminatedTag)
 

Function Documentation

◆ deserialize() [1/8]

template<ResizableContiguousContainer Dst, class... Tags>
void deserialize ( InputStream src,
Dst *  dst,
AppendTag  ,
const Tags &...  tags 
)

◆ deserialize() [2/8]

template<ResizableContiguousContainer Dst, class... Tags>
void deserialize ( InputStream src,
Dst *  dst,
const Tags &...  tags 
)

◆ deserialize() [3/8]

template<ResizableContiguousContainer Dst, class... Tags>
void deserialize ( InputStream src,
Dst *  dst,
PresizedTag  tag,
const Tags &...  tags 
)

◆ deserialize() [4/8]

template<StdSpan Span, class T = typename Span::value_type>
void deserialize ( InputStream src,
Span *  dst 
)

◆ deserialize() [5/8]

template<StdSpan Span, class... Tags>
void deserialize ( InputStream src,
Span *  dst,
EachTag  ,
const Tags &...  tags 
)

◆ deserialize() [6/8]

template<class T , size_t N, class... Tags>
void deserialize ( InputStream src,
std::array< T, N > *  dst,
const Tags &...  tags 
)

◆ deserialize() [7/8]

void deserialize ( InputStream src,
std::string *  dst,
NullTerminatedTag   
)
inline

◆ deserialize() [8/8]

template<class T >
requires is_memcopy_serializable_v<T>
void deserialize ( InputStream src,
T *  dst 
)

◆ serialize() [1/6]

template<StdSpan Span, class T = typename Span::value_type>
void serialize ( const Span &  src,
OutputStream dst 
)

◆ serialize() [2/6]

template<StdSpan Span, class... Tags>
void serialize ( const Span &  src,
OutputStream dst,
EachTag  ,
const Tags &...  tags 
)

◆ serialize() [3/6]

template<ResizableContiguousContainer Src, class... Tags>
void serialize ( const Src &  src,
OutputStream dst,
const Tags &...  tags 
)

◆ serialize() [4/6]

template<ResizableContiguousContainer Src, class... Tags>
void serialize ( const Src &  src,
OutputStream dst,
UnsizedTag  ,
const Tags &...  tags 
)

◆ serialize() [5/6]

template<class T , size_t N, class... Tags>
void serialize ( const std::array< T, N > &  src,
OutputStream dst,
const Tags &...  tags 
)

◆ serialize() [6/6]

template<class T >
requires is_memcopy_serializable_v<T>
void serialize ( const T &  src,
OutputStream dst 
)