#include "vector.h" bool Vector_push(struct Vector* self, const void* value){ return vc_vector_push_back(self->_vector, value); } void* Vector_pop(struct Vector* self){ void* item = vc_vector_end(self->_vector); if(vc_vector_pop_back(self->_vector)){ return NULL; } return item; } bool Vector_replace(struct Vector* self, size_t i, const void* value){ return vc_vector_replace(self->_vector, i, value); } void Vector_clear(struct Vector* self){ vc_vector_clear(self->_vector); } size_t Vector_count(struct Vector* self){ return self->_vector->count; } void Vector_free(struct Vector* self){ vc_vector_release(self->_vector); free(self); } void* Vector_get(Vector* self, size_t i){ return vc_vector_at(self->_vector, i); } Vector* new_Vector(int size, size_t obj_size, vc_vector_deleter* deleter){ return new_VectorFromVC(vc_vector_create(size, obj_size, deleter)); } Vector* new_VectorFromVC(vc_vector* vector){ Vector* self = (Vector*)malloc(sizeof(Vector)); self->_vector = vector; self->push = &Vector_push; self->pop = &Vector_pop; self->replace = &Vector_replace; self->clear = &Vector_clear; self->count = &Vector_count; self->free = &Vector_free; self->get = &Vector_get; return self; } Vector* copy_Vector(struct Vector* vector){ return new_VectorFromVC(vc_vector_create_copy(vector->_vector)); }