vector.h 812 Bytes
Newer Older
1 2 3
#ifndef INCLUDE_vector_h__
#define INCLUDE_vector_h__

4
#include "git2/common.h"
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32


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