userver: formats::parse Namespace Reference
Loading...
Searching...
No Matches
formats::parse Namespace Reference

Detailed Description

Generic parsers and converters.

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 > &&!std::is_convertible_v< T &, utils::impl::strong_typedef::StrongTypedefTag & >, 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< decltype(Parse(std::declval< Value >(), To< 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 > &&!std::is_convertible_v< T &, utils::impl::strong_typedef::StrongTypedefTag & >, 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 >)
 
google::protobuf::Value Parse (const formats::json::Value &value, To< google::protobuf::Value >)
 

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 136 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 128 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 > && !std::is_convertible_v< T &, utils::impl::strong_typedef::StrongTypedefTag & >, T > formats::parse::Convert ( const Value & value,
To< T >  )

Definition at line 110 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 119 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 97 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 69 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< decltype(Parse(std::declval< Value >(), To< T >{}))> formats::parse::Parse ( const Value & value,
To< std::optional< T > >  )

Definition at line 88 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 > && !std::is_convertible_v< T &, utils::impl::strong_typedef::StrongTypedefTag & >, T > formats::parse::Parse ( const Value & value,
To< T >  )

Definition at line 75 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 81 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 27 of file variant.hpp.

◆ ThrowVariantParseException()

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

Definition at line 38 of file variant.hpp.