vector.h 942 B

1234567891011121314151617181920212223242526272829303132333435
  1. #ifndef CX_ZIVUOS_VECTOR_H_INCLUDED
  2. #define CX_ZIVUOS_VECTOR_H_INCLUDED
  3. #include <stdint.h>
  4. #include <stddef.h>
  5. #include <stdbool.h>
  6. #include "result.h"
  7. #include "models.h"
  8. struct zv_vector_s;
  9. struct zv_vector_container_s;
  10. typedef struct zv_vector_s {
  11. size_t lenght;
  12. struct zv_vectos_container_s *first;
  13. struct zv_vector_container_s *last;
  14. } zv_vector_t;
  15. typedef struct zv_vector_container_s {
  16. struct zv_vector_container_s *previous;
  17. struct zv_vector_container_s *next;
  18. zv_universal_t content;
  19. } zv_vector_container_t;
  20. zv_vector_t * zv_vector_create();
  21. zv_universal_t zv_vector_get(zv_vector_t *, size_t);
  22. size_t zv_vector_push(zv_vector_t *, zv_universal_t);
  23. size_t zv_vector_count(zv_vector_t *);
  24. zv_universal_t zv_vector_pop(zv_vector_t *, size_t);
  25. bool zv_vector_insert(zv_vector_t *, zv_universal_t, size_t);
  26. void zv_vector_remove(zv_vector_t *);
  27. zv_universal_t * zv_vector_to_array(zv_vector_t *);
  28. #endif