diff options
author | EuAndreh <eu@euandre.org> | 2024-05-24 16:56:53 -0300 |
---|---|---|
committer | EuAndreh <eu@euandre.org> | 2024-05-24 16:56:53 -0300 |
commit | 1617ac5092036651ae2291f00b267b79d307dc82 (patch) | |
tree | d647b4cd19b24fbe7f8da71783b0bacd70d588eb /src | |
parent | src/vector.{c,h}: Improve code and tests (diff) | |
download | pindaiba-1617ac5092036651ae2291f00b267b79d307dc82.tar.gz pindaiba-1617ac5092036651ae2291f00b267b79d307dc82.tar.xz |
src/vector.h: Add implementation and tests for vector_contains()
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); |