Add set_get_any() to return a random item in the set (just a simple wrapper
authorDavid Given <dg@cowlark.com>
Thu, 19 Jan 2017 22:20:24 +0000 (23:20 +0100)
committerDavid Given <dg@cowlark.com>
Thu, 19 Jan 2017 22:20:24 +0000 (23:20 +0100)
around a one-use iterator).

modules/src/data/set.c
modules/src/data/set.h

index 5c3cb5a..390020a 100644 (file)
@@ -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);
index 6d03229..5672a87 100644 (file)
@@ -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