From bd79d0b57f76f290bffcd8749f60f7e5870d998a Mon Sep 17 00:00:00 2001 From: Andrew Opalach Date: Fri, 4 Oct 2024 12:47:43 -0400 Subject: array: Add is_empty(), foreach_rev() + tests Signed-off-by: Andrew Opalach --- src/array.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src') diff --git a/src/array.c b/src/array.c index 5175d6f..cbeb256 100644 --- a/src/array.c +++ b/src/array.c @@ -14,6 +14,8 @@ #define al_array_init(arr) ((arr).size = 0, (arr).alloc = 0, (arr).data = NULL) #define al_array_item_size(arr) (sizeof(*(arr).data)) // NOLINT(bugprone-sizeof-expression) +#define al_array_is_empty(arr) ((arr).size == 0) + #define al_array_at(arr, i) ((arr).data[i]) #define al_array_last(arr) al_array_at(arr, (arr).size - 1) @@ -77,6 +79,9 @@ #define al_array_foreach(arr, i, item) \ for (u32 i = 0; (i < (arr).size && (item = al_array_at(arr, i), 1)); i++) +#define al_array_foreach_rev(arr, i, item) \ + for (u32 i = (arr).size; (i-- > 0 && (item = al_array_at(arr, i), 1));) + #define al_array_foreach_ptr(arr, i, item) \ for (u32 i = 0; (i < (arr).size && (item = &al_array_at(arr, i), 1)); i++) -- cgit v1.2.3-101-g0448