|
- #pragma once
-
- #include <cpphibernate/config.h>
- #include <cpphibernate/schema/table.h>
-
- namespace cpphibernate {
- namespace schema {
-
- namespace __impl
- {
-
- /**
- * @brief Helper type to build tables.
- */
- template<typename T, typename = void>
- struct tables_builder;
-
- /**
- * @brief Helper class to find a table by it's datatype.
- */
- template<typename X, typename = void>
- struct find_table_builder;
-
- }
-
- /**
- * @brief Evaluates to true_t if the passed type is a tables type.
- */
- template<typename T>
- struct is_tables;
-
- /**
- * @brief Is true if the passed type is an tables type, false otherwise.
- */
- template<typename T>
- constexpr bool is_tables_v = is_tables<T>::value;
-
- /**
- * @brief Predicate to create an tables object from the passed tables.
- */
- constexpr decltype(auto) make_tables = mp::generic_predicate<__impl::tables_builder> { };
-
- /**
- * @brief Predicate to find a table by it's dataset type.
- */
- constexpr decltype(auto) find_table = mp::generic_predicate<__impl::find_table_builder> { };
-
- } }
-
- #include "tables.inl"
|