#ifndef MATADOR_ATTRIBUTE_BINDER_HPP #define MATADOR_ATTRIBUTE_BINDER_HPP #include "matador/utils/types.hpp" #include namespace matador { class date; class time; } namespace matador::utils { class value; class attribute_writer { public: virtual ~attribute_writer() = default; virtual void write_value(size_t pos, const int8_t &x) = 0; virtual void write_value(size_t pos, const int16_t &x) = 0; virtual void write_value(size_t pos, const int32_t &x) = 0; virtual void write_value(size_t pos, const int64_t &x) = 0; virtual void write_value(size_t pos, const uint8_t &x) = 0; virtual void write_value(size_t pos, const uint16_t &x) = 0; virtual void write_value(size_t pos, const uint32_t &x) = 0; virtual void write_value(size_t pos, const uint64_t &x) = 0; virtual void write_value(size_t pos, const bool &x) = 0; virtual void write_value(size_t pos, const float &x) = 0; virtual void write_value(size_t pos, const double &x) = 0; virtual void write_value(size_t pos, const time &x) = 0; virtual void write_value(size_t pos, const date &x) = 0; virtual void write_value(size_t pos, const char *x) = 0; virtual void write_value(size_t pos, const char *x, size_t size) = 0; virtual void write_value(size_t pos, const std::string &x) = 0; virtual void write_value(size_t pos, const std::string &x, size_t size) = 0; virtual void write_value(size_t pos, const blob &x) = 0; virtual void write_value(size_t pos, const value &x, size_t size) = 0; }; } #endif //MATADOR_ATTRIBUTE_BINDER_HPP