userver: formats::parse 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::parse Namespace Reference

Generic parsers and converters. More...

Classes

struct  To
 

Functions

template<class Value , typename T >
boost::optional< T > Parse (const Value &value, To< boost::optional< T > >)
 
template<class Value >
boost::optional< std::nullptr_t > Parse (const Value &, To< boost::optional< std::nullptr_t > >)
 
template<class Value , typename T >
boost::optional< T > Convert (const Value &value, To< boost::optional< T > >)
 
template<class Value >
boost::optional< std::nullptr_t > Convert (const Value &, To< boost::optional< std::nullptr_t > >)
 
template<typename Value >
std::enable_if_t< common::kIsFormatValue< Value >, boost::uuids::uuid > Parse (const Value &value, To< boost::uuids::uuid >)
 
template<class Value , typename... Types>
boost::variant< Types... > Parse (const Value &value, formats::parse::To< boost::variant< Types... > >)
 
template<typename Value >
float Parse (const Value &value, To< float >)
 
template<typename Value , typename T >
std::enable_if_t< common::kIsFormatValue< Value > &&meta::kIsInteger< T >, T > Parse (const Value &value, To< T >)
 
template<typename Value , typename Period >
std::enable_if_t< common::kIsFormatValue< Value >, std::chrono::duration< double, Period > > Parse (const Value &n, To< std::chrono::duration< double, Period > >)
 
template<typename Value >
std::enable_if_t< common::kIsFormatValue< Value >, std::chrono::seconds > Parse (const Value &n, To< std::chrono::seconds >)
 
template<class Value >
std::chrono::system_clock::time_point Parse (const Value &n, To< std::chrono::system_clock::time_point >)
 
template<class Value >
float Convert (const Value &value, To< float >)
 
template<typename Value , typename T >
std::enable_if_t< meta::kIsInteger< T >, T > Convert (const Value &value, To< T >)
 
template<typename Value >
std::chrono::seconds Convert (const Value &n, To< std::chrono::seconds >)
 
template<typename T , typename Value >
std::enable_if_t< common::kIsFormatValue< Value > &&meta::kIsRange< T > &&!meta::kIsMap< T > &&!std::is_same_v< T, boost::uuids::uuid >, T > Parse (const Value &value, To< T >)
 
template<typename T , typename Value >
std::enable_if_t< common::kIsFormatValue< Value > &&meta::kIsMap< T >, T > Parse (const Value &value, To< T >)
 
template<typename T , typename Value >
std::optional< T > Parse (const Value &value, To< std::optional< T > >)
 
template<class Value >
std::optional< std::nullptr_t > Parse (const Value &, To< std::optional< std::nullptr_t > >)
 
template<typename T , typename Value >
std::enable_if_t< meta::kIsRange< T > &&!meta::kIsMap< T > &&!std::is_same_v< T, boost::uuids::uuid >, T > Convert (const Value &value, To< T >)
 
template<typename T , typename Value >
std::enable_if_t< meta::kIsMap< T >, T > Convert (const Value &value, To< T >)
 
template<typename T , typename Value >
std::optional< T > Convert (const Value &value, To< std::optional< T > >)
 
template<class Value >
std::optional< std::nullptr_t > Convert (const Value &, To< std::optional< std::nullptr_t > >)
 
template<typename Value , typename Duration >
std::enable_if_t< common::kIsFormatValue< Value >, utils::datetime::TimeOfDay< Duration > > Parse (const Value &value, To< utils::datetime::TimeOfDay< Duration > >)
 
template<typename ParseException , typename Variant , typename TypeA >
void ThrowVariantAmbiguousParse (const std::string &path, std::type_index type_b)
 
template<class ParseException , typename Variant >
void ThrowVariantParseException (const std::string &path)
 
template<class Value , typename... Types>
std::variant< Types... > Parse (const Value &value, formats::parse::To< std::variant< Types... > >)
 
formats::json::Value Convert (const formats::bson::Value &bson, formats::parse::To< formats::json::Value >)
 
formats::bson::Value Convert (const formats::json::Value &json, formats::parse::To< formats::bson::Value >)
 

Detailed Description

Generic parsers and converters.

Function Documentation

◆ Convert() [1/9]

template<class Value >
boost::optional< std::nullptr_t > formats::parse::Convert ( const Value &  ,
To< boost::optional< std::nullptr_t > >   
)

Definition at line 40 of file boost_optional.hpp.

◆ Convert() [2/9]

template<class Value >
std::optional< std::nullptr_t > formats::parse::Convert ( const Value &  ,
To< std::optional< std::nullptr_t > >   
)

Definition at line 126 of file common_containers.hpp.

◆ Convert() [3/9]

template<typename Value >
std::chrono::seconds formats::parse::Convert ( const Value &  n,
To< std::chrono::seconds >   
)

Definition at line 116 of file common.hpp.

◆ Convert() [4/9]

template<class Value , typename T >
boost::optional< T > formats::parse::Convert ( const Value &  value,
To< boost::optional< T > >   
)

Definition at line 32 of file boost_optional.hpp.

◆ Convert() [5/9]

template<class Value >
float formats::parse::Convert ( const Value &  value,
To< float >   
)

Definition at line 105 of file common.hpp.

◆ Convert() [6/9]

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

Definition at line 118 of file common_containers.hpp.

◆ Convert() [7/9]

template<typename Value , typename T >
std::enable_if_t< meta::kIsInteger< T >, T > formats::parse::Convert ( const Value &  value,
To< T >   
)

Definition at line 110 of file common.hpp.

◆ Convert() [8/9]

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

Definition at line 100 of file common_containers.hpp.

◆ Convert() [9/9]

template<typename T , typename Value >
std::enable_if_t< meta::kIsMap< T >, T > formats::parse::Convert ( const Value &  value,
To< T >   
)

Definition at line 109 of file common_containers.hpp.

◆ Parse() [1/15]

template<class Value >
boost::optional< std::nullptr_t > formats::parse::Parse ( const Value &  ,
To< boost::optional< std::nullptr_t > >   
)

Definition at line 24 of file boost_optional.hpp.

◆ Parse() [2/15]

template<class Value >
std::optional< std::nullptr_t > formats::parse::Parse ( const Value &  ,
To< std::optional< std::nullptr_t > >   
)

Definition at line 89 of file common_containers.hpp.

◆ Parse() [3/15]

template<typename Value , typename Period >
std::enable_if_t< common::kIsFormatValue< Value >, std::chrono::duration< double, Period > > formats::parse::Parse ( const Value &  n,
To< std::chrono::duration< double, Period > >   
)

Definition at line 86 of file common.hpp.

◆ Parse() [4/15]

template<typename Value >
std::enable_if_t< common::kIsFormatValue< Value >, std::chrono::seconds > formats::parse::Parse ( const Value &  n,
To< std::chrono::seconds >   
)

Definition at line 91 of file common.hpp.

◆ Parse() [5/15]

template<class Value >
std::chrono::system_clock::time_point formats::parse::Parse ( const Value &  n,
To< std::chrono::system_clock::time_point >   
)

Definition at line 98 of file common.hpp.

◆ Parse() [6/15]

template<class Value , typename... Types>
boost::variant< Types... > formats::parse::Parse ( const Value &  value,
formats::parse::To< boost::variant< Types... > >   
)

Definition at line 46 of file boost_variant.hpp.

◆ Parse() [7/15]

template<class Value , typename... Types>
std::variant< Types... > formats::parse::Parse ( const Value &  value,
formats::parse::To< std::variant< Types... > >   
)

Definition at line 65 of file variant.hpp.

◆ Parse() [8/15]

template<class Value , typename T >
boost::optional< T > formats::parse::Parse ( const Value &  value,
To< boost::optional< T > >   
)

Definition at line 16 of file boost_optional.hpp.

◆ Parse() [9/15]

template<typename Value >
std::enable_if_t< common::kIsFormatValue< Value >, boost::uuids::uuid > formats::parse::Parse ( const Value &  value,
To< boost::uuids::uuid >   
)

Valid uuid strings: 0123456789abcdef0123456789abcdef 01234567-89ab-cdef-0123-456789abcdef {01234567-89ab-cdef-0123-456789abcdef} {0123456789abcdef0123456789abcdef}

Definition at line 28 of file boost_uuid.hpp.

◆ Parse() [10/15]

template<typename Value >
float formats::parse::Parse ( const Value &  value,
To< float >   
)

Definition at line 72 of file common.hpp.

◆ Parse() [11/15]

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

Definition at line 81 of file common_containers.hpp.

◆ Parse() [12/15]

template<typename Value , typename T >
std::enable_if_t< common::kIsFormatValue< Value > &&meta::kIsInteger< T >, T > formats::parse::Parse ( const Value &  value,
To< T >   
)

Definition at line 77 of file common.hpp.

◆ Parse() [13/15]

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

Definition at line 68 of file common_containers.hpp.

◆ Parse() [14/15]

template<typename T , typename Value >
std::enable_if_t< common::kIsFormatValue< Value > &&meta::kIsMap< T >, T > formats::parse::Parse ( const Value &  value,
To< T >   
)

Definition at line 74 of file common_containers.hpp.

◆ Parse() [15/15]

template<typename Value , typename Duration >
std::enable_if_t< common::kIsFormatValue< Value >, utils::datetime::TimeOfDay< Duration > > formats::parse::Parse ( const Value &  value,
To< utils::datetime::TimeOfDay< Duration > >   
)

Definition at line 20 of file time_of_day.hpp.

◆ ThrowVariantAmbiguousParse()

template<typename ParseException , typename Variant , typename TypeA >
void formats::parse::ThrowVariantAmbiguousParse ( const std::string &  path,
std::type_index  type_b 
)

Definition at line 23 of file variant.hpp.

◆ ThrowVariantParseException()

template<class ParseException , typename Variant >
void formats::parse::ThrowVariantParseException ( const std::string &  path)

Definition at line 34 of file variant.hpp.