refactor: ArrayList and ArraySlice uses Allocator

This commit is contained in:
2026-06-10 13:33:26 -06:00
parent a057f23798
commit c983fd22ad
2 changed files with 72 additions and 19 deletions

View File

@@ -1,6 +1,7 @@
#ifndef LAE_ARRAYLIST_H
#define LAE_ARRAYLIST_H
#include "lae_allocator.h"
#include <inttypes.h>
#include <stdbool.h>
#include <stddef.h>
@@ -25,7 +26,11 @@ typedef enum {
ARRLIST_BORROW_UNDERFLOW,
} ArrayListErr;
ArrayListErr arraylist_init(ArrayList **arr, size_t capacity, size_t elem_size);
ArrayListErr arraylist_init(
ArrayList **arr,
Allocator allocator,
size_t capacity,
size_t elem_size);
ArrayListErr arraylist_destroy(ArrayList **arr);
ArrayListErr arraylist_clear(ArrayList *arr);
ArrayList *arraylist_clone(const ArrayList *arr);
@@ -50,11 +55,19 @@ ArrayListErr arraylist_resize(ArrayList *arr, size_t new_capacity);
ArrayListErr arraylist_reserve(ArrayList *arr, size_t size_to_reserve);
// Slice stuff
ArrayListErr
arraylist_slice(ArraySlice **slice, ArrayList *arr, size_t start, size_t len);
ArrayListErr arraylist_slice(
ArraySlice **slice,
Allocator allocator,
ArrayList *arr,
size_t start,
size_t len);
ArrayListErr arraylist_slice_unsafe(
ArraySlice **slice, ArrayList *arr, size_t start, size_t len);
ArraySlice **slice,
Allocator allocator,
ArrayList *arr,
size_t start,
size_t len);
ArrayListErr arrayslice_destroy(ArraySlice **slice);
@@ -69,6 +82,9 @@ ArrayListErr arrayslice_next(ArraySlice *slice, void *out);
ArrayListErr arrayslice_reset(ArraySlice *slice);
ArrayListErr arrayslice_advance(ArraySlice *slice, size_t n);
ArrayListErr arrayslice_to_arraylist(ArrayList **arr, const ArraySlice *slice);
ArrayListErr arrayslice_to_arraylist(
ArrayList **arr,
Allocator allocator,
const ArraySlice *slice);
#endif