mindex.c

In-memory ordered store and fetch library
git clone git://git.finwo.net/lib/mindex.c
Log | Files | Refs | README | LICENSE

commit 887bebb4a743e1eb4d2598341542ee662adc267e
parent 5c2f6d9e30e38114a908603d67861c225e2a036f
Author: Yersa Nordman <yersa@finwo.nl>
Date:   Sun, 18 Feb 2024 20:50:45 +0100

Added mindex_nth method

Diffstat:
Msrc/mindex.c | 7+++++++
Msrc/mindex.h | 1+
2 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/src/mindex.c b/src/mindex.c @@ -146,6 +146,13 @@ void * mindex_get(struct mindex_t *mindex, void *pattern) { return value; } +void * mindex_nth(struct mindex_t *mindex, int index) { + if (index >= mindex->length) { + return NULL; + } + return mindex->items[index]; +} + void * mindex_rand(struct mindex_t *mindex) { if (!mindex->length) { return NULL; diff --git a/src/mindex.h b/src/mindex.h @@ -15,6 +15,7 @@ struct mindex_t { struct mindex_t * mindex_init(int (*compare)(const void *a, const void *b, void *udata), void (*purge)(void *item, void *udata), void *udata); void mindex_set(struct mindex_t *mindex, void *item); void * mindex_get(struct mindex_t *mindex, void *pattern); +void * mindex_nth(struct mindex_t *mindex, int index); void * mindex_rand(struct mindex_t *mindex); void mindex_delete(struct mindex_t *mindex, void *pattern); size_t mindex_length(struct mindex_t *mindex);