diff options
Diffstat (limited to 'src/darray.h')
-rw-r--r-- | src/darray.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/darray.h b/src/darray.h index c9b6094..569576e 100644 --- a/src/darray.h +++ b/src/darray.h @@ -326,6 +326,17 @@ darray_next_alloc(size_t alloc, size_t need) #define darray_foreach_from(i, arr, from) \ for ((i) = &(arr).item[from]; (i) < &(arr).item[(arr).size]; (i)++) +/* Iterate on index and value at the same time, like Python's enumerate. */ +#define darray_enumerate(idx, val, arr) \ + for ((idx) = 0, (val) = &(arr).item[0]; \ + (idx) < (arr).size; \ + (idx)++, (val)++) + +#define darray_enumerate_from(idx, val, arr, from) \ + for ((idx) = (from), (val) = &(arr).item[0]; \ + (idx) < (arr).size; \ + (idx)++, (val)++) + /* * darray_foreach_reverse(T *&i, darray(T) arr) {...} * |