summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorOmni <omniscient.oce@gmail.com>2024-08-18 14:03:25 +1000
committerOmni <omniscient.oce@gmail.com>2024-08-18 14:03:25 +1000
commitbe8ab99b38c25e899008582d68e891150b328a4d (patch)
tree3261b3087072434424e937f82479f9d15b28106c /src
parent10a97636c5a0234ca776097bae4be25dcf3c050e (diff)
start on stack array
Diffstat (limited to 'src')
-rw-r--r--src/animation.h1
-rw-r--r--src/std/containers/stack_array.h19
2 files changed, 19 insertions, 1 deletions
diff --git a/src/animation.h b/src/animation.h
index 2a489b8..5883f13 100644
--- a/src/animation.h
+++ b/src/animation.h
@@ -4,7 +4,6 @@
#include "darray.h"
#include "defines.h"
#include "maths_types.h"
-#include "mem.h"
#include "ral_types.h"
typedef enum Interpolation {
diff --git a/src/std/containers/stack_array.h b/src/std/containers/stack_array.h
new file mode 100644
index 0000000..d2b6bdd
--- /dev/null
+++ b/src/std/containers/stack_array.h
@@ -0,0 +1,19 @@
+#pragma once
+#include <stdbool.h>
+
+// Defines "_sarray" types
+
+#define TYPED_STACK_ARRAY(T, Name, Len) \
+ typedef struct Name##_sarray { \
+ T items[ Len ]; \
+ size_t len; \
+ } Name##_sarray; \
+ Name##_sarray Name##_sarray_create() { \
+ Name##_sarray arr = { .len = 0 }; \
+ return arr; \
+ } \
+ bool Name##_sarray_push(Name##_sarray* arr, T item) { \
+ if (arr->len == Len) { return false; }\
+ arr->items[arr->len++] = item;\
+ return true;\
+ }