diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/array.c | 5 |
1 files changed, 5 insertions, 0 deletions
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++) |