You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
28 lines
418 B
28 lines
418 B
#ifndef _VECTOR_H
|
|
#define _VECTOR_H
|
|
|
|
#include <rc.h>
|
|
|
|
#define VEC_DEFAULT_CAP 16
|
|
|
|
|
|
typedef void* vec_elem_t;
|
|
typedef struct vec vec_t;
|
|
|
|
struct vec {
|
|
size_t scap;
|
|
|
|
size_t cap;
|
|
size_t len;
|
|
|
|
vec_elem_t buffer[];
|
|
};
|
|
|
|
#define vec_new() vec_alloc(VEC_DEFAULT_CAP)
|
|
#define vec_free(vec) free(vec)
|
|
#define vec_tnptr(ty, elem) ((ty *)(elem))
|
|
|
|
vec_t* _rc_restrict vec_alloc(size_t cap) _rc_alloc_fn;
|
|
|
|
#endif /* _VECTOR_H */
|