diff options
| author | 2024-10-04 12:47:43 -0400 | |
|---|---|---|
| committer | 2024-10-04 12:47:43 -0400 | |
| commit | bd79d0b57f76f290bffcd8749f60f7e5870d998a (patch) | |
| tree | 4805c8a32b74f38730ee69291e5374dd9db4962c /src | |
| parent | 1169000ee0e763a6d09a298eba3eb4d560ff030d (diff) | |
| download | libalabaster-bd79d0b57f76f290bffcd8749f60f7e5870d998a.tar.gz libalabaster-bd79d0b57f76f290bffcd8749f60f7e5870d998a.tar.bz2 libalabaster-bd79d0b57f76f290bffcd8749f60f7e5870d998a.zip | |
array: Add is_empty(), foreach_rev() + tests
Signed-off-by: Andrew Opalach <andrew@akon.city>
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++) |