diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/vector.c | 12 | ||||
-rw-r--r-- | src/vector.h | 3 |
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); |