vec.h (587B)
1 #ifndef SHITVEC_H 2 #define SHITVEC_H 3 4 #include <stddef.h> 5 #include <stdbool.h> 6 7 #define SHITVEC_INIT_SZ 1024 8 9 typedef struct vec { 10 void* arr; 11 size_t e_sz; 12 size_t alloc_sz; 13 size_t vec_sz; 14 } vec_t; 15 16 typedef int(*sv_cmp_t)(void*, void*); 17 18 vec_t vec_new(size_t e_sz); 19 void* vec_get(vec_t* sv, size_t index); 20 void* vec_last(vec_t* sv); 21 void vec_push(vec_t* sv, void* item); 22 void vec_subpush(vec_t* sv, void* item, size_t sz); 23 int vec_check(vec_t* sv, void* item, sv_cmp_t cmp); 24 void vec_sort(vec_t* sv, int(*cmp)(const void*, const void*)); 25 void vec_free(vec_t* sv); 26 27 #endif 28 29