|
@@ -0,0 +1,48 @@
|
|
|
+#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));
|
|
|
+}
|