summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/vector.c12
-rw-r--r--src/vector.h3
2 files changed, 15 insertions, 0 deletions
diff --git a/src/vector.c b/src/vector.c
index 77a6a8a..9634630 100644
--- a/src/vector.c
+++ b/src/vector.c
@@ -3,6 +3,7 @@
#include <assert.h>
#include <errno.h>
#include <locale.h>
+#include <stdbool.h>
#include <stdint.h>
#include <stdlib.h>
#include <stdio.h>
@@ -222,3 +223,14 @@ vector_pop_back(const struct Vector *const v, const void **const out) {
out:
return rc;
}
+
+bool
+vector_contains(const struct Vector *const v, const void *const value) {
+ for (size_t i = 0; i < vector_count(v); i++) {
+ if (memcmp(&v->values[i], value, v->value_size) == 0) {
+ return true;
+ }
+ }
+
+ return false;
+}
diff --git a/src/vector.h b/src/vector.h
index 7d83594..3103375 100644
--- a/src/vector.h
+++ b/src/vector.h
@@ -26,3 +26,6 @@ vector_push_back(const struct Vector *const v, const void *const value);
int
vector_pop_back(const struct Vector *const v, const void **const out);
+
+bool
+vector_contains(const struct Vector *const v, const void *const value);