|
|
|
@@ -13,85 +13,85 @@ namespace matador::utils {
|
|
|
|
|
template <> struct data_type_traits<nullptr_t, void>
|
|
|
|
|
{
|
|
|
|
|
static basic_type type(std::size_t /*size*/) { return basic_type::type_null; }
|
|
|
|
|
static void read_value(attribute_reader &reader, const char *id, size_t index, nullptr_t &/*value*/);
|
|
|
|
|
static void bind_value(attribute_writer &binder, size_t index, nullptr_t &/*value*/);
|
|
|
|
|
static void read_value(attribute_reader &reader, const char *id, size_t index, nullptr_t &/*value*/, size_t /*size*/ = 0);
|
|
|
|
|
static void bind_value(attribute_writer &binder, size_t index, nullptr_t &/*value*/, size_t /*size*/ = 0);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
template <> struct data_type_traits<int8_t, void>
|
|
|
|
|
{
|
|
|
|
|
static basic_type type(std::size_t /*size*/ = 0) { return basic_type::type_int8; }
|
|
|
|
|
static void read_value(attribute_reader &reader, const char *id, size_t index, int8_t &value);
|
|
|
|
|
static void bind_value(attribute_writer &binder, size_t index, const int8_t &value);
|
|
|
|
|
static void read_value(attribute_reader &reader, const char *id, size_t index, int8_t &value, size_t /*size*/ = 0);
|
|
|
|
|
static void bind_value(attribute_writer &binder, size_t index, const int8_t &value, size_t /*size*/ = 0);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
template <> struct data_type_traits<int16_t, void>
|
|
|
|
|
{
|
|
|
|
|
static basic_type type(std::size_t /*size*/ = 0) { return basic_type::type_int16; }
|
|
|
|
|
static void read_value(attribute_reader &reader, const char *id, size_t index, int16_t &value);
|
|
|
|
|
static void bind_value(attribute_writer &binder, size_t index, const int16_t &value);
|
|
|
|
|
static void read_value(attribute_reader &reader, const char *id, size_t index, int16_t &value, size_t /*size*/ = 0);
|
|
|
|
|
static void bind_value(attribute_writer &binder, size_t index, const int16_t &value, size_t /*size*/ = 0);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
template <> struct data_type_traits<int32_t, void>
|
|
|
|
|
{
|
|
|
|
|
static basic_type type(std::size_t /*size*/ = 0) { return basic_type::type_int32; }
|
|
|
|
|
static void read_value(attribute_reader &reader, const char *id, size_t index, int32_t &value);
|
|
|
|
|
static void bind_value(attribute_writer &binder, size_t index, const int32_t &value);
|
|
|
|
|
static void read_value(attribute_reader &reader, const char *id, size_t index, int32_t &value, size_t /*size*/ = 0);
|
|
|
|
|
static void bind_value(attribute_writer &binder, size_t index, const int32_t &value, size_t /*size*/ = 0);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
template <> struct data_type_traits<int64_t, void>
|
|
|
|
|
{
|
|
|
|
|
static basic_type type(std::size_t /*size*/ = 0) { return basic_type::type_int64; }
|
|
|
|
|
static void read_value(attribute_reader &reader, const char *id, size_t index, int64_t &value);
|
|
|
|
|
static void bind_value(attribute_writer &binder, size_t index, const int64_t &value);
|
|
|
|
|
static void read_value(attribute_reader &reader, const char *id, size_t index, int64_t &value, size_t /*size*/ = 0);
|
|
|
|
|
static void bind_value(attribute_writer &binder, size_t index, const int64_t &value, size_t /*size*/ = 0);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
template <> struct data_type_traits<uint8_t, void>
|
|
|
|
|
{
|
|
|
|
|
static basic_type type(std::size_t /*size*/ = 0) { return basic_type::type_uint8; }
|
|
|
|
|
static void read_value(attribute_reader &reader, const char *id, size_t index, uint8_t &value);
|
|
|
|
|
static void bind_value(attribute_writer &binder, size_t index, const uint8_t &value);
|
|
|
|
|
static void read_value(attribute_reader &reader, const char *id, size_t index, uint8_t &value, size_t /*size*/ = 0);
|
|
|
|
|
static void bind_value(attribute_writer &binder, size_t index, const uint8_t &value, size_t /*size*/ = 0);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
template <> struct data_type_traits<uint16_t, void>
|
|
|
|
|
{
|
|
|
|
|
static basic_type type(std::size_t /*size*/ = 0) { return basic_type::type_uint16; }
|
|
|
|
|
static void read_value(attribute_reader &reader, const char *id, size_t index, uint16_t &value);
|
|
|
|
|
static void bind_value(attribute_writer &binder, size_t index, const uint16_t &value);
|
|
|
|
|
static void read_value(attribute_reader &reader, const char *id, size_t index, uint16_t &value, size_t /*size*/ = 0);
|
|
|
|
|
static void bind_value(attribute_writer &binder, size_t index, const uint16_t &value, size_t /*size*/ = 0);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
template <> struct data_type_traits<uint32_t, void>
|
|
|
|
|
{
|
|
|
|
|
static basic_type type(std::size_t /*size*/ = 0) { return basic_type::type_uint32; }
|
|
|
|
|
static void read_value(attribute_reader &reader, const char *id, size_t index, uint32_t &value);
|
|
|
|
|
static void bind_value(attribute_writer &binder, size_t index, const uint32_t &value);
|
|
|
|
|
static void read_value(attribute_reader &reader, const char *id, size_t index, uint32_t &value, size_t /*size*/ = 0);
|
|
|
|
|
static void bind_value(attribute_writer &binder, size_t index, const uint32_t &value, size_t /*size*/ = 0);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
template <> struct data_type_traits<uint64_t, void>
|
|
|
|
|
{
|
|
|
|
|
static basic_type type(std::size_t /*size*/ = 0) { return basic_type::type_uint64; }
|
|
|
|
|
static void read_value(attribute_reader &reader, const char *id, size_t index, uint64_t &value);
|
|
|
|
|
static void bind_value(attribute_writer &binder, size_t index, const uint64_t &value);
|
|
|
|
|
static void read_value(attribute_reader &reader, const char *id, size_t index, uint64_t &value, size_t /*size*/ = 0);
|
|
|
|
|
static void bind_value(attribute_writer &binder, size_t index, const uint64_t &value, size_t /*size*/ = 0);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
template <> struct data_type_traits<bool, void>
|
|
|
|
|
{
|
|
|
|
|
static basic_type type(std::size_t /*size*/ = 0) { return basic_type::type_bool; }
|
|
|
|
|
static void read_value(attribute_reader &reader, const char *id, size_t index, bool &value);
|
|
|
|
|
static void bind_value(attribute_writer &binder, size_t index, const bool &value);
|
|
|
|
|
static void read_value(attribute_reader &reader, const char *id, size_t index, bool &value, size_t /*size*/ = 0);
|
|
|
|
|
static void bind_value(attribute_writer &binder, size_t index, const bool &value, size_t /*size*/ = 0);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
template <> struct data_type_traits<float, void>
|
|
|
|
|
{
|
|
|
|
|
static basic_type type(std::size_t /*size*/ = 0) { return basic_type::type_float; }
|
|
|
|
|
static void read_value(attribute_reader &reader, const char *id, size_t index, float &value);
|
|
|
|
|
static void bind_value(attribute_writer &binder, size_t index, const float &value);
|
|
|
|
|
static void read_value(attribute_reader &reader, const char *id, size_t index, float &value, size_t /*size*/ = 0);
|
|
|
|
|
static void bind_value(attribute_writer &binder, size_t index, const float &value, size_t /*size*/ = 0);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
template <> struct data_type_traits<double, void>
|
|
|
|
|
{
|
|
|
|
|
static basic_type type(std::size_t /*size*/ = 0) { return basic_type::type_double; }
|
|
|
|
|
static void read_value(attribute_reader &reader, const char *id, size_t index, double &value);
|
|
|
|
|
static void bind_value(attribute_writer &binder, size_t index, const double &value);
|
|
|
|
|
static void read_value(attribute_reader &reader, const char *id, size_t index, double &value, size_t /*size*/ = 0);
|
|
|
|
|
static void bind_value(attribute_writer &binder, size_t index, const double &value, size_t /*size*/ = 0);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
template <> struct data_type_traits<const char*, void>
|
|
|
|
@@ -131,8 +131,8 @@ template <> struct data_type_traits<std::string, void>
|
|
|
|
|
template <> struct data_type_traits<utils::blob, void>
|
|
|
|
|
{
|
|
|
|
|
static basic_type type(std::size_t /*size*/) { return basic_type::type_blob; }
|
|
|
|
|
static void read_value(attribute_reader &reader, const char *id, size_t index, utils::blob &value);
|
|
|
|
|
static void bind_value(attribute_writer &binder, size_t index, utils::blob &value);
|
|
|
|
|
static void read_value(attribute_reader &reader, const char *id, size_t index, utils::blob &value, size_t /*size*/ = 0);
|
|
|
|
|
static void bind_value(attribute_writer &binder, size_t index, utils::blob &value, size_t /*size*/ = 0);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
//template <> struct data_type_traits<matador::date, void>
|
|
|
|
@@ -153,13 +153,11 @@ template < typename EnumType >
|
|
|
|
|
struct data_type_traits<EnumType, std::enable_if_t<std::is_enum_v<EnumType>>>
|
|
|
|
|
{
|
|
|
|
|
static basic_type type(std::size_t /*size*/ = 0) { return basic_type::type_int32; }
|
|
|
|
|
static void read_value(attribute_reader &reader, const char *id, const size_t index, EnumType &value)
|
|
|
|
|
{
|
|
|
|
|
data_type_traits<int>::read_value(reader, id, index, reinterpret_cast<int&>(value));
|
|
|
|
|
static void read_value(attribute_reader &reader, const char *id, const size_t index, EnumType &value, const size_t size = 0) {
|
|
|
|
|
data_type_traits<int>::read_value(reader, id, index, reinterpret_cast<int&>(value), size);
|
|
|
|
|
}
|
|
|
|
|
static void bind_value(attribute_writer &binder, const size_t index, EnumType &value)
|
|
|
|
|
{
|
|
|
|
|
data_type_traits<int>::bind_value(binder, index, static_cast<int &>(value));
|
|
|
|
|
static void bind_value(attribute_writer &binder, const size_t index, EnumType &value, const size_t size = 0) {
|
|
|
|
|
data_type_traits<int>::bind_value(binder, index, static_cast<int &>(value), size);
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
/// @endcond
|
|
|
|
|