vector.h 791 B

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