#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_container_s * zv_vector_t; typedef int32_t zv_vector_count_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_vector_count_t zv_vector_length(zv_vector_t *self); zv_universal_t zv_vector_pop(zv_vector_t *self); bool zv_vector_append(zv_vector_t *self, zv_universal_t content); zv_universal_t zv_vector_indexed_pop( zv_vector_t *self, zv_vector_count_t index ); bool zv_vector_insert( zv_vector_t *self, zv_universal_t content, zv_vector_count_t index ); #endif