#ifndef COMMON_H #define COMMON_H #include #include #include size_t next_word(char line[], size_t line_size, FILE *file, int *ch); void array_push( void **data, size_t *capacity, size_t *size, void *elem, size_t elem_size); void array_push_n(void **data, size_t *capacity, size_t *size, void *elems, size_t elem_size, size_t elem_count); typedef int (*CmpFn)(const void *, const void *); void *binary_search(void *data, size_t count, const void *entry, size_t entry_size, size_t *out_idx, CmpFn cmp); typedef struct RbTree RbTree; RbTree *rbtree_new(size_t key_size, size_t val_size, CmpFn cmp); void rbtree_free(RbTree *t); void rbtree_insert(RbTree *t, const void *key, void *val); void *rbtree_get(RbTree *t, const void *key); void test_common(void); #endif