#ifndef CX_ZIVUOS_VECTOR_H_INCLUDED #define CX_ZIVUOS_VECTOR_H_INCLUDED #include #include #include #include "systypes.h" #include "zalloc.h" typedef struct zv_vector_container_s { zv_universal_t content; struct zv_vector_container_s *next; struct zv_vector_container_s *previous; } zv_vector_container_t; typedef struct zv_vector_s { struct zv_vector_container_s *first; struct zv_vector_container_s *last; size_t length; } zv_vector_t; zv_vector_t * zv_vector_create(void); void zv_vector_clear(zv_vector_t *self); void zv_vector_remove(zv_vector_t *self); zv_universal_t zv_vector_pop(zv_vector_t *self); zv_universal_t zv_vector_indexed_pop(zv_vector_t *self, size_t index); bool zv_vector_insert( zv_vector_t *self, zv_universal_t content, size_t index ); bool zv_vector_append(zv_vector_t *self, zv_universal_t content); #endif