X-Git-Url: https://git.rrq.au/?a=blobdiff_plain;f=vector%2Fvector.h;h=4dc61f8ee793d2429a7807c56c07a060a8f0bf32;hb=74eec6f62db4459232f95b5d39069b9b4ceeb830;hp=33cf96a46ce26919d927ca019891c83b5cae5bbb;hpb=2bd18d410e42775bbdaab680447d1e2c43f5491c;p=rrq%2Frrqmisc.git diff --git a/vector/vector.h b/vector/vector.h index 33cf96a..4dc61f8 100644 --- a/vector/vector.h +++ b/vector/vector.h @@ -67,9 +67,7 @@ enum vector_variant { */ typedef struct { /** - * The indexing variant. 0 = 8-bit, 1 = 4-bit, and 2 = 2-bit - * indexing parts. This gives 256, 16 or 4 slots per index page. - * Note that variant should not be changed after initialization. + * The indexing variant. */ enum vector_variant variant; @@ -379,4 +377,20 @@ extern vector_index vector_find(vector *pv,void *value); */ extern vector_index vector_next_unused(vector *pv,vector_index index); +/** + * \brief Convenience callback function for vector shrinking to free + * any existing slot assignment. + * + * \related vector + */ +extern int vector_free_any(vector *pv,vector_index ix,void *item,void *data); + +/** + * \brief Convenience callback function for vector shrinking to ignore + * any existing slot assignment (without free-ing them). + * + * \related vector + */ +extern int vector_clear_any(vector *pv,vector_index ix,void *item,void *data); + #endif