quinn-os/pvec.h
2022-06-29 21:47:22 +10:00

26 lines
947 B
C

#ifndef __PVEC_H__
#define __PVEC_H__
#include <stddef.h>
struct ptr_vector {
size_t len;
size_t capacity;
void **ptrs;
};
extern void init_ptr_vector(struct ptr_vector *vec);
extern void ptr_vector_clear(struct ptr_vector *vec);
extern void *ptr_vector_get(struct ptr_vector *vec, size_t i);
extern int ptr_vector_put(struct ptr_vector *vec, void *p, size_t i);
extern int ptr_vector_ins(struct ptr_vector *vec, void *p, size_t i);
extern void *ptr_vector_del(struct ptr_vector *vec, size_t i);
extern int ptr_vector_append(struct ptr_vector *vec, void *p);
extern size_t ptr_vector_len(struct ptr_vector *vec);
extern void ptr_vector_apply(struct ptr_vector *vec, void (*f)(void *arg));
extern void **ptr_vector_ptrs(struct ptr_vector *vec);
extern void **consume_ptr_vector(struct ptr_vector *vec);
extern void destroy_ptr_vector(struct ptr_vector *vec);
extern int ptr_vector_append_if_unique(struct ptr_vector *vec, void *p);
#endif