userver: formats::serialize Namespace Reference
⚠️ This is the documentation for an old userver version. Click here to switch to the latest version.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages Concepts
formats::serialize Namespace Reference

Common serializers. More...

Classes

struct  SaxStream
 
struct  To
 

Functions

template<typename... Types>
formats::json::Value Serialize (const boost::variant< Types... > &value, To< formats::json::Value >)
 
template<class Rep , class Period >
static json::Value Serialize (std::chrono::duration< Rep, Period > duration, To< formats::json::Value >)
 
template<class Rep , class Period >
static void WriteToStream (std::chrono::duration< Rep, Period > duration, formats::json::StringBuilder &sw)
 
template<typename... Types>
formats::json::Value Serialize (const std::variant< Types... > &value, To< formats::json::Value >)
 
template<typename T , typename Value >
Value Serialize (const boost::optional< T > &value, To< Value >)
 
template<typename Value >
Value Serialize (const boost::uuids::uuid &value, To< Value >)
 Outputs UUID in format: 12345678-1234-1234-1234-123412345678.
 
template<typename StringBuilder >
void WriteToStream (const boost::uuids::uuid &value, StringBuilder &sw)
 
template<typename T , typename Value >
std::enable_if_t< meta::kIsRange< T > &&!meta::kIsMap< T > &&!std::is_same_v< T, boost::uuids::uuid >, Value > Serialize (const T &value, To< Value >)
 Common containers serialization (vector/set)
 
template<typename T , typename Value >
std::enable_if_t< meta::kIsUniqueMap< T >, Value > Serialize (const T &value, To< Value >)
 Mappings serialization.
 
template<typename T , typename Value >
Value Serialize (const std::optional< T > &value, To< Value >)
 std::optional serialization
 
template<typename Value , typename Duration >
Value Serialize (const utils::datetime::TimeOfDay< Duration > &value, To< Value >)
 
template<typename Value , typename Duration , typename StringBuilder >
void WriteToStream (const utils::datetime::TimeOfDay< Duration > &value, StringBuilder &sw)
 
template<typename... Types, typename StringBuilder >
void WriteToStream (const std::variant< Types... > &value, StringBuilder &sw)
 Variant serialization.
 
template<typename T , typename StringBuilder >
void WriteToStream (const std::optional< T > &value, StringBuilder &sw)
 std::optional serialization
 
template<typename T , typename StringBuilder >
std::enable_if_t<!std::is_arithmetic_v< T > > WriteToStream (const T &value, StringBuilder &sw)
 
json::Value Serialize (const google::protobuf::Message &message, To< json::Value >)
 

Detailed Description

Common serializers.

Function Documentation

◆ Serialize() [1/9]

template<typename T , typename Value >
Value formats::serialize::Serialize ( const boost::optional< T > &  value,
To< Value >   
)

Definition at line 18 of file boost_optional.hpp.

◆ Serialize() [2/9]

template<typename Value >
Value formats::serialize::Serialize ( const boost::uuids::uuid &  value,
To< Value >   
)

Outputs UUID in format: 12345678-1234-1234-1234-123412345678.

Definition at line 24 of file boost_uuid.hpp.

◆ Serialize() [3/9]

template<typename... Types>
formats::json::Value formats::serialize::Serialize ( const boost::variant< Types... > &  value,
To< formats::json::Value  
)

Definition at line 18 of file serialize_boost_variant.hpp.

◆ Serialize() [4/9]

template<typename T , typename Value >
Value formats::serialize::Serialize ( const std::optional< T > &  value,
To< Value >   
)

std::optional serialization

Definition at line 50 of file common_containers.hpp.

◆ Serialize() [5/9]

template<typename... Types>
formats::json::Value formats::serialize::Serialize ( const std::variant< Types... > &  value,
To< formats::json::Value  
)

Definition at line 17 of file serialize_variant.hpp.

◆ Serialize() [6/9]

template<typename T , typename Value >
std::enable_if_t< meta::kIsRange< T > &&!meta::kIsMap< T > && !std::is_same_v< T, boost::uuids::uuid >, Value > formats::serialize::Serialize ( const T &  value,
To< Value >   
)

Common containers serialization (vector/set)

Definition at line 28 of file common_containers.hpp.

◆ Serialize() [7/9]

template<typename T , typename Value >
std::enable_if_t< meta::kIsUniqueMap< T >, Value > formats::serialize::Serialize ( const T &  value,
To< Value >   
)

Mappings serialization.

Definition at line 39 of file common_containers.hpp.

◆ Serialize() [8/9]

template<typename Value , typename Duration >
Value formats::serialize::Serialize ( const utils::datetime::TimeOfDay< Duration > &  value,
To< Value >   
)

Definition at line 18 of file time_of_day.hpp.

◆ Serialize() [9/9]

template<class Rep , class Period >
static json::Value formats::serialize::Serialize ( std::chrono::duration< Rep, Period >  duration,
To< formats::json::Value  
)
static

Definition at line 19 of file serialize_duration.hpp.

◆ WriteToStream() [1/6]

template<typename StringBuilder >
void formats::serialize::WriteToStream ( const boost::uuids::uuid &  value,
StringBuilder &  sw 
)

Definition at line 29 of file boost_uuid.hpp.

◆ WriteToStream() [2/6]

template<typename T , typename StringBuilder >
void formats::serialize::WriteToStream ( const std::optional< T > &  value,
StringBuilder &  sw 
)

std::optional serialization

Definition at line 34 of file write_to_stream.hpp.

◆ WriteToStream() [3/6]

template<typename... Types, typename StringBuilder >
void formats::serialize::WriteToStream ( const std::variant< Types... > &  value,
StringBuilder &  sw 
)

Variant serialization.

Definition at line 27 of file write_to_stream.hpp.

◆ WriteToStream() [4/6]

template<typename T , typename StringBuilder >
std::enable_if_t<!std::is_arithmetic_v< T > > formats::serialize::WriteToStream ( const T &  value,
StringBuilder &  sw 
)

Handle ranges, fall back to using formats::*Serialize

The signature of this WriteToStream must remain the less specialized one, so that it is not preferred over other functions.

Definition at line 78 of file write_to_stream.hpp.

◆ WriteToStream() [5/6]

template<typename Value , typename Duration , typename StringBuilder >
void formats::serialize::WriteToStream ( const utils::datetime::TimeOfDay< Duration > &  value,
StringBuilder &  sw 
)

Definition at line 23 of file time_of_day.hpp.

◆ WriteToStream() [6/6]

template<class Rep , class Period >
static void formats::serialize::WriteToStream ( std::chrono::duration< Rep, Period >  duration,
formats::json::StringBuilder sw 
)
static

Definition at line 27 of file serialize_duration.hpp.