summaryrefslogtreecommitdiff
path: root/src/array.cc
diff options
context:
space:
mode:
authorFabrice <fabrice@schaub-dev.xyz>2026-03-02 12:43:25 +0100
committerFabrice <fabrice@schaub-dev.xyz>2026-03-02 12:43:25 +0100
commit01fe9f2eeab8b54487a4673e74851160adb1718d (patch)
treed95bcb5c81a76660c01fa8434bf59613b6ac7586 /src/array.cc
parentef816e31ba15bbda487298339c5ca88456c31d33 (diff)
working on array implementation
Diffstat (limited to 'src/array.cc')
-rw-r--r--src/array.cc22
1 files changed, 20 insertions, 2 deletions
diff --git a/src/array.cc b/src/array.cc
index 0238c05..7c8cc19 100644
--- a/src/array.cc
+++ b/src/array.cc
@@ -1,9 +1,27 @@
#ifndef ARRAY_CC
#define ARRAY_CC
-template<typename T>
+#include "memory.cc"
+
+#define ARRAY_INIT 4
+#define ARRAY_GROWTH 2
+
+template <typename T>
struct Array {
-
+ Slice<T> buffer;
+ const Allocator* allocator;
};
+#define array_init(T, allocator) Array<T>{Slice<T>{}, allocator}
+
+template<typename T>
+void array_deinit(Array<T>* array) {
+ assert(array != nullptr);
+
+ if(unlikely(array->allocator == nullptr)) return;
+
+ slice_deallocate(array->allocator, &array->buffer);
+ array->allocator = nullptr;
+}
+
#endif