23 lines
693 B
C
23 lines
693 B
C
|
|
#ifndef APFL_RESIZABLE
|
||
|
|
#define APFL_RESIZABLE 1
|
||
|
|
|
||
|
|
#include <stddef.h>
|
||
|
|
#include <stdbool.h>
|
||
|
|
|
||
|
|
#define APFL_RESIZABLE_TRAIT(T, N) \
|
||
|
|
T* N; \
|
||
|
|
size_t len; \
|
||
|
|
size_t cap;
|
||
|
|
|
||
|
|
#define APFL_RESIZABLE_ARGS(S, N) (void **)(&(S).N), &(S).len, &(S).cap
|
||
|
|
|
||
|
|
void apfl_resizable_init(void **mem, size_t *len, size_t *cap);
|
||
|
|
|
||
|
|
bool apfl_resizable_resize(size_t elem_size, void **mem, size_t *len, size_t *cap, size_t newlen);
|
||
|
|
|
||
|
|
bool apfl_resizable_grow_cap(size_t elem_size, void **mem, size_t *len, size_t *cap, size_t inc_cap);
|
||
|
|
|
||
|
|
bool apfl_resizable_append(size_t elem_size, void **mem, size_t *len, size_t *cap, const void *other_mem, size_t other_len);
|
||
|
|
|
||
|
|
#endif
|