summaryrefslogtreecommitdiff
path: root/src/list.h
blob: a22f3da6950a9830f675e764917627063e59b13e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#pragma once

#include "types.h"

typedef struct {
	union {
		float *floats;
		int *ints;
		unsigned int *uints;
		unsigned char *bytes;
		char **strings;
		void *data;
	};
	u32 len;
	u32 capacity;
	u32 elmSize;
} 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_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);