set more to* fptrs

Tue, 09 Dec 2025 19:40:08 +0100

author
Olaf Wintermann <olaf.wintermann@gmail.com>
date
Tue, 09 Dec 2025 19:40:08 +0100
changeset 27
5baee70feaa9
parent 26
dc36aa437249
child 28
e46f9f254fcd

set more to* fptrs

dbutils/field.c file | annotate | diff | comparison | revisions
--- a/dbutils/field.c	Tue Dec 09 18:24:48 2025 +0100
+++ b/dbutils/field.c	Tue Dec 09 19:40:08 2025 +0100
@@ -958,70 +958,76 @@
 
 
 void dbuClassAddInt32FK(DBUClass *cls, const char *name, off_t offset, DBUClass *foreign_cls, bool nonnull) {
-    add_offset_fk_field(
+    DBUField *f = add_offset_fk_field(
             cls,
             name,
             offset,
             foreign_cls,
             (DBUFieldInitFunc)field_init_int32,
             nonnull);
+    f->toInt64 = (DBUFieldToInt64Func)field_get_int32;
 }
 
 void dbuClassAddUInt32FK(DBUClass *cls, const char *name, off_t offset, DBUClass *foreign_cls, bool nonnull){
-    add_offset_fk_field(
+    DBUField *f = add_offset_fk_field(
             cls,
             name,
             offset,
             foreign_cls,
             (DBUFieldInitFunc)field_init_uint32,
             nonnull);
+    f->toUInt64 = (DBUFieldToUInt64Func)field_get_uint32;
 }
 
 void dbuClassAddInt64FK(DBUClass *cls, const char *name, off_t offset, DBUClass *foreign_cls, bool nonnull){
-    add_offset_fk_field(
+    DBUField *f = add_offset_fk_field(
             cls,
             name,
             offset,
             foreign_cls,
             (DBUFieldInitFunc)field_init_int64,
             nonnull);
+    f->toInt64 = (DBUFieldToInt64Func)field_get_int64;
 }
 
 void dbuClassAddUInt64FK(DBUClass *cls, const char *name, off_t offset, DBUClass *foreign_cls, bool nonnull){
-    add_offset_fk_field(
+    DBUField *f = add_offset_fk_field(
             cls,
             name,
             offset,
             foreign_cls,
             (DBUFieldInitFunc)field_init_uint64,
             nonnull);
+    f->toUInt64 = (DBUFieldToUInt64Func)field_get_uint64;
 }
 
 void dbuClassAddStringFK(DBUClass *cls, const char *name, off_t offset, DBUClass *foreign_cls, bool nonnull){
-    add_offset_fk_field(
+    DBUField *f = add_offset_fk_field(
             cls, 
             name,
             offset,
             foreign_cls,
             (DBUFieldInitFunc)field_init_str,
             nonnull);
+    f->toString = (DBUFieldToStringFunc)field_get_str;
 }
 
 void dbuClassAddCXMutStrFK(DBUClass *cls, const char *name, off_t offset, DBUClass *foreign_cls, bool nonnull){
-    add_offset_fk_field(
+    DBUField *f = add_offset_fk_field(
             cls, 
             name,
             offset,
             foreign_cls,
             (DBUFieldInitFunc)field_init_cxmutstr,
             nonnull);
+    f->toString = (DBUFieldToStringFunc)field_get_cxstr;
 }
 
 
 void dbuClassAddIntDef(DBUClass *cls, const char *name, off_t offset, int def) {
     union DBUDefValue defvalue;
     defvalue.def = def;
-    add_offset_def_field(
+    DBUField *f = add_offset_def_field(
             cls,
             name,
             offset,
@@ -1029,12 +1035,13 @@
             (DBUFieldInitFunc)field_init_int,
             false,
             (union DBUDefValue){ 0 });
+    f->toInt64 = (DBUFieldToInt64Func)field_get_int32;
 }
 
 void dbuClassAddUIntDef(DBUClass *cls, const char *name, off_t offset, unsigned int def) {
     union DBUDefValue defvalue;
     defvalue.udef = def;
-    add_offset_def_field(
+    DBUField *f = add_offset_def_field(
             cls,
             name,
             offset,
@@ -1042,12 +1049,13 @@
             (DBUFieldInitFunc)field_init_uint,
             false,
             (union DBUDefValue){ 0 });
+    f->toUInt64 = (DBUFieldToUInt64Func)field_get_uint32;
 }
 
 void dbuClassAddInt16Def(DBUClass *cls, const char *name, off_t offset, int16_t def) {
     union DBUDefValue defvalue;
     defvalue.def = def;
-    add_offset_def_field(
+    DBUField *f = add_offset_def_field(
             cls,
             name,
             offset,
@@ -1055,12 +1063,13 @@
             (DBUFieldInitFunc)field_init_int16,
             false,
             (union DBUDefValue){ 0 });
+    f->toInt64 = (DBUFieldToInt64Func)field_get_int16;
 }
 
 void dbuClassAddUInt16Def(DBUClass *cls, const char *name, off_t offset, uint16_t def) {
     union DBUDefValue defvalue;
     defvalue.udef = def;
-    add_offset_def_field(
+    DBUField *f = add_offset_def_field(
             cls,
             name,
             offset,
@@ -1068,12 +1077,13 @@
             (DBUFieldInitFunc)field_init_uint16,
             false,
             (union DBUDefValue){ 0 });
+    f->toUInt64 = (DBUFieldToUInt64Func)field_get_uint16;
 }
 
 void dbuClassAddInt32Def(DBUClass *cls, const char *name, off_t offset, int32_t def) {
     union DBUDefValue defvalue;
     defvalue.def = def;
-    add_offset_def_field(
+    DBUField *f = add_offset_def_field(
             cls,
             name,
             offset,
@@ -1081,12 +1091,13 @@
             (DBUFieldInitFunc)field_init_int32,
             false,
             (union DBUDefValue){ 0 });
+    f->toInt64 = (DBUFieldToInt64Func)field_get_int32;
 }
 
 void dbuClassAddUInt32Def(DBUClass *cls, const char *name, off_t offset, uint32_t def) {
     union DBUDefValue defvalue;
     defvalue.udef = def;
-    add_offset_def_field(
+    DBUField *f = add_offset_def_field(
             cls,
             name,
             offset,
@@ -1094,12 +1105,13 @@
             (DBUFieldInitFunc)field_init_uint32,
             false,
             (union DBUDefValue){ 0 });
+    f->toUInt64 = (DBUFieldToUInt64Func)field_get_uint32;
 }
 
 void dbuClassAddInt64Def(DBUClass *cls, const char *name, off_t offset, int64_t def) {
     union DBUDefValue defvalue;
     defvalue.def = def;
-    add_offset_def_field(
+    DBUField *f = add_offset_def_field(
             cls,
             name,
             offset,
@@ -1107,12 +1119,13 @@
             (DBUFieldInitFunc)field_init_int64,
             false,
             (union DBUDefValue){ 0 });
+    f->toInt64 = (DBUFieldToInt64Func)field_get_int64;
 }
 
 void dbuClassAddUInt64Def(DBUClass *cls, const char *name, off_t offset, uint64_t def) {
     union DBUDefValue defvalue;
     defvalue.def = def;
-    add_offset_def_field(
+    DBUField *f = add_offset_def_field(
             cls,
             name,
             offset,
@@ -1120,12 +1133,13 @@
             (DBUFieldInitFunc)field_init_uint64,
             false,
             (union DBUDefValue){ 0 });
+    f->toUInt64 = (DBUFieldToUInt64Func)field_get_uint64;
 }
 
 void dbuClassAddSizeDef(DBUClass *cls, const char *name, off_t offset, size_t def) {
     union DBUDefValue defvalue;
     defvalue.udef = def;
-    add_offset_def_field(
+    DBUField *f = add_offset_def_field(
             cls,
             name,
             offset,
@@ -1133,12 +1147,13 @@
             (DBUFieldInitFunc)field_init_size,
             false,
             (union DBUDefValue){ 0 });
+    f->toUInt64 = (DBUFieldToUInt64Func)field_get_size;
 }
 
 void dbuClassAddSSizeDef(DBUClass *cls, const char *name, off_t offset, ssize_t def) {
     union DBUDefValue defvalue;
     defvalue.def = def;
-    add_offset_def_field(
+    DBUField *f = add_offset_def_field(
             cls,
             name,
             offset,
@@ -1146,12 +1161,13 @@
             (DBUFieldInitFunc)field_init_ssize,
             false,
             (union DBUDefValue){ 0 });
+    f->toInt64 = (DBUFieldToInt64Func)field_get_ssize;
 }
 
 void dbuClassAddFloatDef(DBUClass *cls, const char *name, off_t offset, float def) {
     union DBUDefValue defvalue;
     defvalue.fdef = def;
-    add_offset_def_field(
+    DBUField *f = add_offset_def_field(
             cls,
             name,
             offset,
@@ -1159,12 +1175,13 @@
             (DBUFieldInitFunc)field_init_float,
             false,
             (union DBUDefValue){ 0 });
+    f->toDouble = (DBUFieldToDoubleFunc)field_get_float;
 }
 
 void dbuClassAddDoubleDef(DBUClass *cls, const char *name, off_t offset, double def) {
     union DBUDefValue defvalue;
     defvalue.ddef = def;
-    add_offset_def_field(
+    DBUField *f = add_offset_def_field(
             cls,
             name,
             offset,
@@ -1172,6 +1189,7 @@
             (DBUFieldInitFunc)field_init_double,
             false,
             (union DBUDefValue){ 0 });
+    f->toDouble = (DBUFieldToDoubleFunc)field_get_double;
 }
 
 

mercurial