#pragma once #include "Statement.h" #include #include namespace db { namespace statements { namespace builder { class SelectStatementBuilder; class InsertStatementBuilder; class UpdateStatementBuilder; class AbstractStatementBuilder { protected: Statement &m_statement; explicit AbstractStatementBuilder(Statement &statement) : m_statement(statement) {} public: operator Statement() const { return std::move(m_statement); } }; class StatementBuilder : public AbstractStatementBuilder { public: Statement m_statement; StatementBuilder() : AbstractStatementBuilder{m_statement} { } }; } } }