userver: formats::serialize Namespace Reference
Loading...
Searching...
No Matches
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.