introduced field_attributes shortcuts and added method on_base() to all processor classes

This commit is contained in:
2026-04-22 11:03:33 +02:00
parent 78eb5d04cd
commit 9b25f7f556
68 changed files with 248 additions and 151 deletions
+2
View File
@@ -44,6 +44,8 @@ public:
return columns;
}
template<typename BaseType>
static void on_base(const BaseType&) {}
template < class V >
void on_primary_key(const char *id, V &, const utils::primary_key_attribute& /*attr*/) {
if (has_many_to_many_) {
@@ -22,6 +22,8 @@ public:
return identifier_;
}
template<typename BaseType>
static void on_base(const BaseType&) {}
template<typename ValueType>
void on_primary_key(const char *id, ValueType &value, const utils::primary_key_attribute& attr) {
utils::data_type_traits<ValueType>::read_value(reader_, id, column_index_, value, attr.size());
@@ -27,6 +27,8 @@ public:
binder_ = nullptr;
}
template<typename BaseType>
static void on_base(const BaseType&) {}
template<typename ValueType>
void on_primary_key(const char *id, ValueType &value, const utils::primary_key_attribute& attr);
static void on_revision(const char * /*id*/, uint64_t &/*rev*/) {}
@@ -73,6 +75,8 @@ public:
void reset();
template<typename BaseType>
static void on_base(const BaseType&) {}
template < class Type >
void on_primary_key(const char *id, Type &val, const utils::primary_key_attribute& attr) {
utils::data_type_traits<Type>::read_value(*binder_, id, index_++, val, attr.size());
@@ -14,6 +14,8 @@ public:
access::process(*this, obj);
}
template<typename BaseType>
static void on_base(const BaseType&) {}
template<typename ValueType>
void on_primary_key(const char *id, ValueType &value, const utils::primary_key_attribute& attr);
void on_revision(const char * /*id*/, uint64_t &/*rev*/) {
@@ -40,6 +40,8 @@ public:
const std::type_index& result_type,
size_t column_index = 0);
template<typename BaseType>
static void on_base(const BaseType&) {}
template<typename ValueType>
void on_primary_key(const char *id, ValueType &value, const utils::primary_key_attribute& attr) {
utils::data_type_traits<ValueType>::read_value(*reader_, id, column_index_++, value, attr.size());
@@ -27,6 +27,8 @@ public:
return pk_;
}
template<typename BaseType>
static void on_base(const BaseType&) {}
template<typename ValueType>
void on_primary_key(const char *id, ValueType &/*value*/, const utils::primary_key_attribute& attr) {
if (!type_stack_.empty()) {
@@ -17,6 +17,8 @@ public:
void reset(size_t start_index);
[[nodiscard]] size_t current_index() const;
template<typename BaseType>
static void on_base(const BaseType&) {}
template < class Type >
void on_primary_key(const char * /*id*/, Type &val, const utils::primary_key_attribute& attr) {
utils::data_type_traits<Type>::bind_value(*binder_, index_++, val, attr.size());
+2
View File
@@ -19,6 +19,8 @@ public:
binder_ = nullptr;
}
template<typename BaseType>
static void on_base(const BaseType&) {}
template<typename ValueType>
void on_primary_key(const char *id, ValueType &value, const utils::primary_key_attribute& attr);
static void on_revision(const char * /*id*/, unsigned long long &/*rev*/) {}