feat(dynamic array): implemented has value function for dynamic array
This commit is contained in:
parent
d5ba0a07bc
commit
57e61c4036
3 changed files with 20 additions and 0 deletions
|
|
@ -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
|
||||
|
|
@ -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;
|
||||
}
|
||||
|
|
@ -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");
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue