f6-dynamic-array #18
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);
|
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; }
|
inline static bool fledasty_dynamic_array_is_empty(const FledastyDynamicArray *current_dynamic_array) { return current_dynamic_array->size == 0; }
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -26,6 +26,7 @@
|
||||||
#include <Hallocy/Core/Allocator.h>
|
#include <Hallocy/Core/Allocator.h>
|
||||||
#include <Hallocy/Core/Memory.h>
|
#include <Hallocy/Core/Memory.h>
|
||||||
#include <Hallocy/Utils/Error.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) {
|
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) {
|
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);
|
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);
|
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)) {
|
if (fledasty_dynamic_array_is_empty(&test_dynamic_array)) {
|
||||||
printf("Dynamic array is empty\n");
|
printf("Dynamic array is empty\n");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue