#ifndef QUERY_FIELD_HPP #define QUERY_FIELD_HPP #include "matador/sql/any_type.hpp" #include "matador/sql/any_type_to_visitor.hpp" #include namespace matador::sql { class field { public: [[nodiscard]] const std::string& name() const; template Type as() const { const Type* ptr= std::get_if(&value_); if (ptr) { return *ptr; } any_type_to_visitor visitor; std::visit(visitor, const_cast(value_)); return visitor.result; } bool is_integer() const; bool is_floating_point() const; bool is_bool() const; bool is_string() const; bool is_blob() const; bool is_null() const; friend std::ostream& operator<<(std::ostream &out, const field &col); private: std::string name_; any_type value_; }; } #endif //QUERY_FIELD_HPP