diff options
Diffstat (limited to 'src/vector.h')
-rw-r--r-- | src/vector.h | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/vector.h b/src/vector.h new file mode 100644 index 000000000..8239abade --- /dev/null +++ b/src/vector.h @@ -0,0 +1,32 @@ +#ifndef INCLUDE_vector_h__ +#define INCLUDE_vector_h__ + +#include "git/common.h" + + +typedef int (*git_vector_cmp)(const void *, const void *); +typedef int (*git_vector_srch)(const void *, const void *); + +typedef struct git_vector { + unsigned int _alloc_size; + git_vector_cmp _cmp; + git_vector_srch _srch; + + void **contents; + unsigned int length; +} git_vector; + + +int git_vector_init(git_vector *v, unsigned int initial_size, git_vector_cmp cmp, git_vector_srch srch); +void git_vector_free(git_vector *v); +void git_vector_clear(git_vector *v); + +int git_vector_search(git_vector *v, const void *key); +void git_vector_sort(git_vector *v); + +void *git_vector_get(git_vector *v, unsigned int position); + +int git_vector_insert(git_vector *v, void *element); +int git_vector_remove(git_vector *v, unsigned int idx); + +#endif |