mindex.c

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

commit e2eceeaef8b4365892f23be1730163548c540711
parent b381053867398519899361ff39a056da5a4e7eca
Author: finwo <finwo@pm.me>
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);