From dd992cf6b9badf1515051d34c6cf8413be218e75 Mon Sep 17 00:00:00 2001 From: laentropia Date: Thu, 23 Apr 2026 08:59:12 -0600 Subject: [PATCH] addtition: reset and advance, need testing --- src/arraylist.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/arraylist.c b/src/arraylist.c index e76acbf..a147a0e 100644 --- a/src/arraylist.c +++ b/src/arraylist.c @@ -553,3 +553,27 @@ ArrayListErr arrayslice_next(ArraySlice *slice, void *out) { slice->current++; return ARRLIST_OK; } + +ArrayListErr arrayslice_reset(ArraySlice *slice) { + if (slice == NULL) { + return ARRLIST_NULL_ARG; + } + + slice->current = slice->start; + + return ARRLIST_OK; +} + +ArrayListErr arrayslice_advance(ArraySlice *slice, size_t n) { + if (slice == NULL) { + return ARRLIST_NULL_ARG; + } + + if (n > SIZE_MAX - slice->current || slice->current + n >= slice->end) { + return ARRLIST_OUT_OF_BOUNDS; + } + + slice->current += n; + + return ARRLIST_OK; +}