diff options
| author | Fabrice <fabrice@schaub-dev.xyz> | 2026-03-02 12:43:25 +0100 |
|---|---|---|
| committer | Fabrice <fabrice@schaub-dev.xyz> | 2026-03-02 12:43:25 +0100 |
| commit | 01fe9f2eeab8b54487a4673e74851160adb1718d (patch) | |
| tree | d95bcb5c81a76660c01fa8434bf59613b6ac7586 /src/array.cc | |
| parent | ef816e31ba15bbda487298339c5ca88456c31d33 (diff) | |
working on array implementation
Diffstat (limited to 'src/array.cc')
| -rw-r--r-- | src/array.cc | 22 |
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 |
