39 lines
848 B
C
39 lines
848 B
C
#ifndef COMMON_H
|
|
#define COMMON_H
|
|
|
|
#include <stdbool.h>
|
|
#include <stddef.h>
|
|
#include <stdio.h>
|
|
|
|
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
|