From 0fc64c2d8dcbefff3357f511dc6133cb75e161b9 Mon Sep 17 00:00:00 2001 From: laentropia Date: Wed, 15 Apr 2026 07:38:04 -0600 Subject: [PATCH] addition: set and get, not tested --- include/arraylist.h | 1 - src/arraylist.c | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/include/arraylist.h b/include/arraylist.h index 50e4f7c..b048ce3 100644 --- a/include/arraylist.h +++ b/include/arraylist.h @@ -18,7 +18,6 @@ typedef enum { ARRLIST_BAD_ALLOC, ARRLIST_EMPTY, ARRLIST_NULL_ARG, - ARRLIST_INVALID_CAPACITY, ARRLIST_INVALID_ELEM_SIZE, } ArrayListErr; diff --git a/src/arraylist.c b/src/arraylist.c index 224d817..1392edb 100644 --- a/src/arraylist.c +++ b/src/arraylist.c @@ -286,4 +286,36 @@ ArrayListErr arraylist_remove_at(ArrayList *arr, size_t index, void *out) { return ARRLIST_OK; } +ArrayListErr arraylist_get(const ArrayList *arr, size_t index, void *out) { + if (arr == NULL || out == NULL) { + return ARRLIST_NULL_ARG; + } + if (index >= arr->capacity) { + return ARRLIST_OUT_OF_BOUNDS; + } + + memcpy( + out, + arr->buffer + (index * arr->elem_size), + arr->elem_size); + + return ARRLIST_OK; +} + +ArrayListErr arraylist_set(ArrayList *arr, size_t index, void *data) { + if (arr == NULL || data == NULL) { + return ARRLIST_NULL_ARG; + } + + if (index >= arr->capacity) { + return ARRLIST_OUT_OF_BOUNDS; + } + + memcpy( + arr->buffer + (index * arr->elem_size), + data, + arr->elem_size); + + return ARRLIST_OK; +}