Circus 0.0.1-alpha
C++ Serialization Framework
Loading...
Searching...
No Matches
circus::serializer< OStreamT > Class Template Reference

A flexible serializer for C++ objects, primitives, STL containers, and user-defined types. More...

#include <serializer.hpp>

Public Member Functions

 serializer (OStreamT &s)
 Constructs a serializer with the given output stream.
template<typename... Args>
void operator() (Args &&...args) &
 Serializes the given arguments using function-call syntax.
template<typename... Args>
serializeroperator<< (Args &&...args)
 Serializes the given arguments using stream-like syntax.

Detailed Description

template<typename OStreamT>
requires (std::is_base_of_v<std::ostream, OStreamT>)
class circus::serializer< OStreamT >

A flexible serializer for C++ objects, primitives, STL containers, and user-defined types.

The serializer emits a structured, human-readable output inspired by formats like JSON or YAML, but uses custom token syntax and compile-time traits to determine how to serialize different types.

Template Parameters
OStreamTOutput stream type (must derive from std::ostream)

Constructor & Destructor Documentation

◆ serializer()

template<typename OStreamT>
circus::serializer< OStreamT >::serializer ( OStreamT & s)
inline

Constructs a serializer with the given output stream.

Parameters
sOutput stream reference (e.g., std::ostringstream, std::ofstream)

Member Function Documentation

◆ operator()()

template<typename OStreamT>
template<typename... Args>
void circus::serializer< OStreamT >::operator() ( Args &&... args) &
inline

Serializes the given arguments using function-call syntax.

Example:

serializer s(os);
s(CIRCUS_ENTRY(x), CIRCUS_ENTRY(y));
serializer(OStreamT &s)
Constructs a serializer with the given output stream.
Definition serializer.hpp:114

◆ operator<<()

template<typename OStreamT>
template<typename... Args>
serializer & circus::serializer< OStreamT >::operator<< ( Args &&... args)
inline

Serializes the given arguments using stream-like syntax.

Example:

s << CIRCUS_ENTRY(x) << CIRCUS_ENTRY(y);
A flexible serializer for C++ objects, primitives, STL containers, and user-defined types.
Definition serializer.hpp:28
Returns
Reference to the serializer

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