#ifndef LIST_H #define LIST_H #include #include #include #include #define LIST_INIT_CAPACITY 4 typedef struct { void** items; size_t len; size_t capacity; size_t item_size; } List; List* list_new(size_t item_size); int list_push(List*, void*); int list_remove(List*, const void*, int (*compare)(const void*, const void*)); void list_free(List*); void* list_binary_search(List*, const void*, int (*compare)(const void*, const void*)); #endif // LIST_H