vector.h 825 B

12345678910111213141516171819202122232425262728
  1. #ifndef VECTOR_H_
  2. #define VECTOR_H_
  3. #include "vc_vector.h"
  4. typedef bool (*Vector_func_push)(struct Vector*, const void*);
  5. typedef bool (*Vector_func_replace)(struct Vector*, size_t, const void*);
  6. typedef void* (*Vector_func_pop)(struct Vector*);
  7. typedef void (*Vector_func)(struct Vector*);
  8. typedef size_t (*Vector_func_count)(struct Vector*);
  9. typedef void* (*Vector_func_get)(struct Vector*, size_t i);
  10. typedef struct Vector {
  11. vc_vector* _vector;
  12. Vector_func_push consume;
  13. Vector_func_push push;
  14. Vector_func_pop pop;
  15. Vector_func_replace replace;
  16. Vector_func clear;
  17. Vector_func_count count;
  18. Vector_func_get get;
  19. } Vector;
  20. void free_Vector(struct Vector* self);
  21. Vector* new_Vector(int size, size_t obj_size, vc_vector_deleter* deleter);
  22. Vector* new_VectorFromVC(vc_vector* vector);
  23. #endif