proxygen
DynamicConverter.h File Reference
#include <iterator>
#include <type_traits>
#include <boost/iterator/iterator_adaptor.hpp>
#include <boost/mpl/has_xxx.hpp>
#include <folly/Likely.h>
#include <folly/Optional.h>
#include <folly/Traits.h>
#include <folly/dynamic.h>

Go to the source code of this file.

Classes

struct  folly::dynamicconverter_detail::iterator_class_is_container< T >
 
struct  folly::dynamicconverter_detail::Dereferencer< T >
 
struct  folly::dynamicconverter_detail::Dereferencer< std::pair< F, S > >
 
class  folly::dynamicconverter_detail::Transformer< T, It >
 
struct  folly::DynamicConverter< T, Enable >
 
struct  folly::DynamicConverter< bool >
 
struct  folly::DynamicConverter< T, typename std::enable_if< std::is_integral< T >::value &&!std::is_same< T, bool >::value >::type >
 
struct  folly::DynamicConverter< T, typename std::enable_if< std::is_enum< T >::value >::type >
 
struct  folly::DynamicConverter< T, typename std::enable_if< std::is_floating_point< T >::value >::type >
 
struct  folly::DynamicConverter< folly::fbstring >
 
struct  folly::DynamicConverter< std::string >
 
struct  folly::DynamicConverter< std::pair< F, S > >
 
struct  folly::DynamicConverter< C, typename std::enable_if< dynamicconverter_detail::is_container< C >::value &&!dynamicconverter_detail::is_associative< C >::value >::type >
 
struct  folly::DynamicConverter< C, typename std::enable_if< dynamicconverter_detail::is_container< C >::value &&dynamicconverter_detail::is_associative< C >::value >::type >
 
struct  folly::DynamicConstructor< C, Enable >
 
struct  folly::DynamicConstructor< C, typename std::enable_if< std::is_same< C, dynamic >::value >::type >
 
struct  folly::DynamicConstructor< C, typename std::enable_if< !std::is_same< C, dynamic >::value &&dynamicconverter_detail::is_map< C >::value >::type >
 
struct  folly::DynamicConstructor< C, typename std::enable_if< !std::is_same< C, dynamic >::value &&!dynamicconverter_detail::is_map< C >::value &&!std::is_constructible< StringPiece, const C & >::value &&dynamicconverter_detail::is_range< C >::value >::type >
 
struct  folly::DynamicConstructor< std::pair< A, B >, void >
 
struct  folly::DynamicConstructor< std::vector< bool >, void >
 

Namespaces

 folly
 —— Concurrent Priority Queue Implementation ——
 
 folly::dynamicconverter_detail
 

Typedefs

template<typename T >
using folly::dynamicconverter_detail::class_is_container = Conjunction< has_iterator< T >, iterator_class_is_container< T >>
 
template<typename T >
using folly::dynamicconverter_detail::is_range = StrictConjunction< has_value_type< T >, has_iterator< T >>
 
template<typename T >
using folly::dynamicconverter_detail::is_container = StrictConjunction< std::is_class< T >, class_is_container< T >>
 
template<typename T >
using folly::dynamicconverter_detail::is_map = StrictConjunction< is_range< T >, has_mapped_type< T >>
 
template<typename T >
using folly::dynamicconverter_detail::is_associative = StrictConjunction< is_range< T >, has_key_type< T >>
 

Functions

template<typename T >
T folly::convertTo (const dynamic &)
 
template<typename T >
dynamic folly::toDynamic (const T &)
 
template<typename T , typename It >
std::move_iterator< Transformer< T, It > > folly::dynamicconverter_detail::conversionIterator (const It &it)