1 #ifndef LIBDERP_VECTOR_H
2 #define LIBDERP_VECTOR_H
9 typedef struct vector vector;
12 void v_free(vector *);
13 void v_dtor(vector *, dtor *, void *);
14 size_t v_length(const vector *);
15 bool v_set_length(vector *, size_t);
16 size_t v_capacity(const vector *);
17 size_t v_reserve_capacity(vector *, size_t);
18 bool v_is_empty(const vector *);
19 void * v_at(const vector *, size_t);
20 void * v_first(const vector *);
21 void * v_last(const vector *);
22 bool v_append(vector *, void *);
23 bool v_prepend(vector *, void *);
24 void * v_remove_first(vector *);
25 void * v_remove_last(vector *);
26 bool v_insert(vector *, size_t, void *);
27 void * v_remove(vector *, size_t);
28 bool v_swap(vector *, size_t, size_t);
29 void v_clear(vector *);
30 size_t v_find_index(const vector *, const void *,
31 comparator *, void *aux);
32 size_t v_find_last_index(const vector *, const void *,
33 comparator *, void *aux);
34 bool v_sort(vector *, comparator *, void *aux);
35 bool v_reverse(vector *);