From 750492551cec43d9da3551e1d829025bc88001ed Mon Sep 17 00:00:00 2001 From: David Given Date: Thu, 19 Jan 2017 23:20:24 +0100 Subject: [PATCH] Add set_get_any() to return a random item in the set (just a simple wrapper around a one-use iterator). --- modules/src/data/set.c | 6 ++++++ modules/src/data/set.h | 1 + 2 files changed, 7 insertions(+) diff --git a/modules/src/data/set.c b/modules/src/data/set.c index 5c3cb5aaa..390020aa6 100644 --- a/modules/src/data/set.c +++ b/modules/src/data/set.c @@ -28,6 +28,12 @@ void* set_get(struct set* s, void* item) return hashtable_get(&s->table, item); } +void* set_get_any(struct set* s) +{ + struct hashtable_iterator hit = {}; + return hashtable_next(&s->table, &hit); +} + void* set_pop(struct set* s) { return hashtable_pop(&s->table); diff --git a/modules/src/data/set.h b/modules/src/data/set.h index 6d0322903..5672a87f1 100644 --- a/modules/src/data/set.h +++ b/modules/src/data/set.h @@ -19,6 +19,7 @@ extern void set_reset(struct set* s); extern bool set_add(struct set* s, void* item); extern void* set_remove(struct set* s, void* item); extern void* set_get(struct set* s, void* item); +extern void* set_get_any(struct set* s); extern void* set_pop(struct set* s); struct set_iterator -- 2.34.1