diff options
author | Omni <omniscient.oce@gmail.com> | 2024-08-18 14:03:25 +1000 |
---|---|---|
committer | Omni <omniscient.oce@gmail.com> | 2024-08-18 14:03:25 +1000 |
commit | be8ab99b38c25e899008582d68e891150b328a4d (patch) | |
tree | 3261b3087072434424e937f82479f9d15b28106c /src/std/containers | |
parent | 10a97636c5a0234ca776097bae4be25dcf3c050e (diff) |
start on stack array
Diffstat (limited to 'src/std/containers')
-rw-r--r-- | src/std/containers/stack_array.h | 19 |
1 files changed, 19 insertions, 0 deletions
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;\ + } |