#ifndef SQLGEN_CREATETABLE_HPP_ #define SQLGEN_CREATETABLE_HPP_ #include #include "is_connection.hpp" #include "transpilation/to_create_table.hpp" namespace sqlgen { template requires is_connection Result> create_table_impl(const Ref& _conn, const bool _if_not_exists) { const auto query = transpilation::to_create_table(_if_not_exists); return _conn->execute(_conn->to_sql(query)).transform([&](const auto&) { return _conn; }); } template requires is_connection Result> create_table_impl(const Result>& _res, const bool _if_not_exists) { return _res.and_then([&](const auto& _conn) { return create_table_impl(_conn, _if_not_exists); }); } template struct CreateTable { auto operator()(const auto& _conn) const { return create_table_impl(_conn, if_not_exists_); } bool if_not_exists_; }; template const auto create_table = CreateTable{}; }; // namespace sqlgen #endif