]> Kevux Git Server - fll/commitdiff
Feature: provide f_cell, f_cells, and f_cellss types.
authorKevin Day <thekevinday@gmail.com>
Fri, 10 Jul 2020 03:15:36 +0000 (22:15 -0500)
committerKevin Day <thekevinday@gmail.com>
Fri, 10 Jul 2020 03:15:36 +0000 (22:15 -0500)
The f_cell types are intended to represent a row and column position, just like with a table cell.
This is important for management arrays matrices and the like.

level_0/f_type/c/type.h
level_0/f_type/c/type_array.h

index 782b99163cbc0b65c340c1ba0c4881058cd0f308..edb8cc9466d0acd20a8362c7f6bdfc622222fce5 100644 (file)
@@ -202,6 +202,25 @@ extern "C" {
 #endif // _di_f_array_
 
 /**
+ * A structure designating a row and column, just like a cell in a table.
+ *
+ * row:    the row position.
+ * column: the column position.
+ */
+#ifndef _di_f_cell_
+  typedef struct {
+    f_array_length row;
+    f_array_length column;
+  } f_cell;
+
+  #define f_cell_initialize { 0, 0 }
+
+  #define f_macro_cell_clear(cell) \
+    cell.row = 0; \
+    cell.column = 0;
+#endif // _di_f_cell_
+
+/**
  * GCC-specific features.
  *
  * Use these macros for GCC-specific tweaks so that if GCC is not supported then they can be easily disabled.
index 2043a1843f33bf1d0373142588fab48a76717377..c44ab5552dfa801ed9af91e300d0d39a144e1d4d 100644 (file)
@@ -83,6 +83,68 @@ extern "C" {
 #endif // _di_f_array_lengthss_
 
 /**
+ * An array of f_cell.
+ *
+ * array: the array of f_cell.
+ * size: total amount of allocated space.
+ * used: total number of allocated spaces used.
+ */
+#ifndef _di_f_cells_
+  typedef struct {
+    f_cell *array;
+
+    f_array_length size;
+    f_array_length used;
+  } f_cells;
+
+  #define f_cells_initialize {0, 0, 0}
+
+  #define f_macro_cells_clear(ranges) f_macro_memory_structure_clear(ranges)
+
+  #define f_macro_cells_new(status, ranges, length) f_macro_memory_structure_new(status, ranges, f_cell, length)
+
+  #define f_macro_cells_delete(status, ranges)  f_macro_memory_structure_delete(status, ranges, f_cell)
+  #define f_macro_cells_destroy(status, ranges) f_macro_memory_structure_destroy(status, ranges, f_cell)
+
+  #define f_macro_cells_delete_simple(ranges)  f_macro_memory_structure_delete_simple(ranges, f_cell)
+  #define f_macro_cells_destroy_simple(ranges) f_macro_memory_structure_destroy_simple(ranges, f_cell)
+
+  #define f_macro_cells_resize(status, ranges, new_length) f_macro_memory_structure_resize(status, ranges, f_cell, new_length)
+  #define f_macro_cells_adjust(status, ranges, new_length) f_macro_memory_structure_adjust(status, ranges, f_cell, new_length)
+#endif // _di_f_cells_
+
+/**
+ * This holds an array of f_cells.
+ *
+ * array: The array of f_cell arrays.
+ * size:  Total amount of allocated space.
+ * used:  Total number of allocated spaces used.
+ */
+#ifndef _di_f_cellss_
+  typedef struct {
+    f_cells *array;
+
+    f_array_length size;
+    f_array_length used;
+  } f_cellss;
+
+  #define f_cellss_initialize { 0, 0, 0 }
+
+  #define f_macro_cellss_clear(rangess) f_macro_memory_structures_clear(rangess)
+
+  #define f_macro_cellss_new(status, rangess, length) f_macro_memory_structures_new(status, rangess, f_cells, length)
+
+  #define f_macro_cellss_delete(status, rangess)  f_macro_memory_structures_delete(status, rangess, f_cell, f_cells)
+  #define f_macro_cellss_destroy(status, rangess) f_macro_memory_structures_destroy(status, rangess, f_cell, f_cells)
+
+  #define f_macro_cellss_delete_simple(rangess)  f_macro_memory_structures_delete_simple(rangess, f_cell, f_cells)
+  #define f_macro_cellss_destroy_simple(rangess) f_macro_memory_structures_destroy_simple(rangess, f_cell, f_cells)
+
+  #define f_macro_cellss_resize(status, rangess, new_length) f_macro_memory_structures_resize(status, rangess, f_cell, f_cells, new_length, f_array_length)
+  #define f_macro_cellss_adjust(status, rangess, new_length) f_macro_memory_structures_adjust(status, rangess, f_cell, f_cells, new_length, f_array_length)
+#endif // _di_f_cellss_
+
+/**
  * An array of array int8_t.
  *
  * array: An array of int8_t.