proxygen
properties.h File Reference

Go to the source code of this file.

Classes

struct  folly::pushmi::property_traits< T, class >
 
struct  folly::pushmi::property_traits< T, std::enable_if_t< Valid< std::decay_t< T >, __property_category_t > > >
 
struct  folly::pushmi::detail::property_set_element< P, class >
 
struct  folly::pushmi::property_set< PropertyN >
 
struct  folly::pushmi::property_set_traits< T, class >
 
struct  folly::pushmi::property_set_traits< T, std::enable_if_t< Valid< std::decay_t< T >, __properties_t > > >
 
struct  folly::pushmi::detail::property_set_insert< PS0, class >
 
struct  folly::pushmi::detail::property_set_insert< PS0, property_set< P, P1... > >
 
struct  folly::pushmi::detail::property_query_impl< PS, ExpectedN >
 
struct  folly::pushmi::property_query< PS, ExpectedN >
 
struct  folly::pushmi::detail::category_query_impl< PS, ExpectedN >
 
struct  folly::pushmi::category_query< PS, ExpectedN >
 

Namespaces

 folly
 —— Concurrent Priority Queue Implementation ——
 
 folly::pushmi
 
 folly::pushmi::detail
 

Typedefs

template<class T >
using folly::pushmi::__property_category_t = typename T::property_category
 
template<class T >
using folly::pushmi::property_category_t = __property_category_t< property_traits< T >>
 
template<class T >
using folly::pushmi::__properties_t = typename T::properties
 
template<class T >
using folly::pushmi::properties_t = std::enable_if_t< PropertySet< __properties_t< property_set_traits< T >>>, __properties_t< property_set_traits< T >>>
 
template<class PS , class P >
using folly::pushmi::detail::property_set_insert_one_t = decltype(detail::__property_set_insert_fn< P >(PS{}, PS{}))
 
template<class PS , class P >
using folly::pushmi::property_set_index_t = std::enable_if_t< PropertySet< PS > &&Property< P >, decltype(detail::__property_set_index_fn< P >(PS{}))>
 
template<class PS0 , class PS1 >
using folly::pushmi::property_set_insert_t = typename std::enable_if_t< PropertySet< PS0 > &&PropertySet< PS1 >, detail::property_set_insert< PS0, PS1 >>::type
 

Functions

 folly::pushmi::PUSHMI_CONCEPT_DEF (template(class T) concept Property, Valid< T, property_category_t >)
 
 folly::pushmi::PUSHMI_CONCEPT_DEF (template(class T, class...Set)(concept FoundExactlyOnce)(T, Set...), sum_v<(PUSHMI_PP_IS_SAME(T, Set)?1:0)... >==1)
 
 folly::pushmi::PUSHMI_CONCEPT_DEF (template(class...PropertyN)(concept UniqueCategory)(PropertyN...), And< FoundExactlyOnce< property_category_t< PropertyN >, property_category_t< PropertyN >... >... > &&And< Property< PropertyN >... >)
 
 folly::pushmi::PUSHMI_CONCEPT_DEF (template(class T) concept PropertySet, detail::is_v< T, property_set >)
 
 folly::pushmi::PUSHMI_CONCEPT_DEF (template(class T) concept Properties, Valid< T, properties_t >)
 
template<class PIn , class POut >
POut folly::pushmi::detail::__property_set_index_fn (property_set_element< POut, property_category_t< PIn >>)
 
template<class PIn , class POut , class... Ps>
property_set< std::conditional_t< PUSHMI_PP_IS_SAME(Ps, PIn), POut, Ps >... > folly::pushmi::detail::__property_set_insert_fn (property_set< Ps... >, property_set_element< POut, property_category_t< PIn >>)
 
template<class PIn , class... Ps>
property_set< Ps..., PIn > folly::pushmi::detail::__property_set_insert_fn (property_set< Ps... >,...)
 
template<class PIn , class POut >
std::is_base_of< PIn, POut > folly::pushmi::detail::property_query_fn (property_set_element< POut, property_category_t< PIn >> *)
 
template<class PIn >
std::false_type folly::pushmi::detail::property_query_fn (void *)
 
template<class CIn , class POut >
std::true_type folly::pushmi::detail::category_query_fn (property_set_element< POut, CIn > *)
 
template<class C >
std::false_type folly::pushmi::detail::category_query_fn (void *)
 

Variables

template<class PS , class... ExpectedN>
PUSHMI_INLINE_VAR constexpr bool folly::pushmi::property_query_v
 
template<class PS , class... ExpectedN>
PUSHMI_INLINE_VAR constexpr bool folly::pushmi::category_query_v