From 1617ac5092036651ae2291f00b267b79d307dc82 Mon Sep 17 00:00:00 2001 From: EuAndreh Date: Fri, 24 May 2024 16:56:53 -0300 Subject: src/vector.h: Add implementation and tests for vector_contains() --- src/vector.c | 12 ++++++++++++ src/vector.h | 3 +++ 2 files changed, 15 insertions(+) (limited to 'src') 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 #include #include +#include #include #include #include @@ -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); -- cgit v1.2.3