#ifndef ARRAY_H #define ARRAY_H #include struct opaque_array_t; typedef struct opaque_array_t array_t; static const size_t array_not_found = (size_t)-1; array_t* array_create(size_t capacity); void array_destroy(array_t* array); int array_append(array_t* array, void* element); size_t array_get_count(const array_t* array); void* array_get_element(const array_t* array, size_t index); size_t array_find_first(const array_t* array, const void* element, size_t start_pos); int array_remove_first(array_t* array, const void* element, size_t start_pos); #endif // ARRAY_H