added hawk_arr_itr_t, hawk_val_arr_itr_t and functions for them
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
33
lib/arr.c
33
lib/arr.c
@ -33,7 +33,6 @@
|
||||
#define keeper_t hawk_arr_keeper_t
|
||||
#define walker_t hawk_arr_walker_t
|
||||
|
||||
|
||||
#define TOB(arr,len) ((len)*(arr)->scale)
|
||||
#define DPTR(slot) ((slot)->val.ptr)
|
||||
#define DLEN(slot) ((slot)->val.len)
|
||||
@ -482,6 +481,38 @@ void hawk_arr_clear (hawk_arr_t* arr)
|
||||
arr->tally = 0;
|
||||
}
|
||||
|
||||
hawk_ptl_t* hawk_arr_getfirstelem (hawk_arr_t* arr, hawk_arr_itr_t* itr)
|
||||
{
|
||||
hawk_oow_t i;
|
||||
|
||||
for (i = 0; i < arr->size; i++)
|
||||
{
|
||||
if (arr->slot[i])
|
||||
{
|
||||
itr->idx = i;
|
||||
return &arr->slot[i]->val;
|
||||
}
|
||||
}
|
||||
|
||||
return HAWK_NULL;
|
||||
}
|
||||
|
||||
hawk_ptl_t* hawk_arr_getnextelem (hawk_arr_t* arr, hawk_arr_itr_t* itr)
|
||||
{
|
||||
hawk_oow_t i;
|
||||
|
||||
for (i = itr->idx + 1; i < arr->size; i++)
|
||||
{
|
||||
if (arr->slot[i])
|
||||
{
|
||||
itr->idx = i;
|
||||
return &arr->slot[i]->val;
|
||||
}
|
||||
}
|
||||
|
||||
return HAWK_NULL;
|
||||
}
|
||||
|
||||
hawk_oow_t hawk_arr_walk (hawk_arr_t* arr, walker_t walker, void* ctx)
|
||||
{
|
||||
hawk_arr_walk_t w = HAWK_ARR_WALK_FORWARD;
|
||||
|
||||
Reference in New Issue
Block a user