summaryrefslogtreecommitdiff
path: root/src/list.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/list.h')
-rw-r--r--src/list.h37
1 files changed, 22 insertions, 15 deletions
diff --git a/src/list.h b/src/list.h
index 6d2211b..a22f3da 100644
--- a/src/list.h
+++ b/src/list.h
@@ -1,26 +1,33 @@
#pragma once
+#include "types.h"
+
typedef struct {
union {
- float *fdata;
- int *idata;
- unsigned int *udata;
- unsigned char *bdata;
+ float *floats;
+ int *ints;
+ unsigned int *uints;
+ unsigned char *bytes;
+ char **strings;
void *data;
};
- int len;
- int capacity;
- int elmSize;
+ u32 len;
+ u32 capacity;
+ u32 elmSize;
} List;
-void list_initf(List *list);
-void list_initi(List *list);
-void list_initu(List *list);
-void list_initb(List *list);
+void list_init_float(List *list);
+void list_init_i32(List *list);
+void list_init_u8(List *list);
+void list_init_u32(List *list);
+void list_init_u64(List *list);
+void list_init_string(List *list);
-void list_pushf(List *list, float f);
-void list_pushi(List *list, int i);
-void list_pushu(List *list, unsigned int u);
-void list_pushb(List *list, unsigned char u);
+void list_push_float(List *list, float f);
+void list_push_i32(List *list, i32 i);
+void list_push_u8(List *list, u8 u);
+void list_push_u32(List *list, u32 u);
+void list_push_u64(List *list, u64 u);
+void list_push_string(List *list, char *s);
void list_free(List *list);