26 lines
947 B
C
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 |