feat(dynamic array): implemented has value function for dynamic array

This commit is contained in:
Mineplay 2025-04-25 04:42:15 -05:00
parent d5ba0a07bc
commit 57e61c4036
3 changed files with 20 additions and 0 deletions

View file

@ -47,6 +47,7 @@ FledastyError fledasty_dynamic_array_insert_after_value(FledastyDynamicArray *cu
void *fledasty_dynamic_array_get(const FledastyDynamicArray *current_dynamic_array, const size_t index);
bool fledasty_dynamic_array_has_value(const FledastyDynamicArray *current_dynamic_array, void *value);
inline static bool fledasty_dynamic_array_is_empty(const FledastyDynamicArray *current_dynamic_array) { return current_dynamic_array->size == 0; }
#endif

View file

@ -26,6 +26,7 @@
#include <Hallocy/Core/Allocator.h>
#include <Hallocy/Core/Memory.h>
#include <Hallocy/Utils/Error.h>
#include <stdbool.h>
FledastyError fledasty_dynamic_array_initialize(FledastyDynamicArray *new_dynamic_array, void *values, const size_t values_size, const size_t element_byte_size) {
if (new_dynamic_array == NULL) {
@ -181,4 +182,18 @@ void *fledasty_dynamic_array_get(const FledastyDynamicArray *current_dynamic_arr
}
return current_dynamic_array->buffer + (index * current_dynamic_array->element_byte_size);
}
bool fledasty_dynamic_array_has_value(const FledastyDynamicArray *current_dynamic_array, void *value) {
if (current_dynamic_array == NULL) {
return false;
}
for (size_t byte_index = 0; byte_index < current_dynamic_array->size * current_dynamic_array->element_byte_size; byte_index += current_dynamic_array->element_byte_size) {
if (hallocy_compare_memory(current_dynamic_array->buffer + byte_index, value, current_dynamic_array->element_byte_size)) {
return true;
}
}
return false;
}

View file

@ -88,6 +88,10 @@ int main() {
printf("Dynamic array get: %d\n", *dynamic_array_data);
}
if (fledasty_dynamic_array_has_value(&test_dynamic_array, &insert_value)) {
printf("Dynamic array contains %d\n", insert_value);
}
if (fledasty_dynamic_array_is_empty(&test_dynamic_array)) {
printf("Dynamic array is empty\n");
}