#ifndef CX_ZIVUOS_VECTOR_H_INCLUDED #define CX_ZIVUOS_VECTOR_H_INCLUDED #include #include "systypes.h" #include "memory.h" typedef struct zv_vector_container_s { struct zv_vector_container_s *previous; struct zv_vector_container_s *next; zv_universal_t content; } zv_vector_container_t; typedef struct zv_vector_s { zv_vector_container_t *first; zv_vector_container_t *last; zv_size_t size; } zv_vector_t; zv_vector_t * zv_vector_create(void); void zv_vector_delete(zv_vector_t *self); bool zv_vector_avairable(void); bool zv_vector_push(zv_vector_t *self, zv_universal_t content); zv_universal_t zv_vector_pop(zv_vector_t *self); zv_universal_t * zv_vector_get_pointer(zv_vector_t *self, zv_size_t target); zv_universal_t zv_vector_get(zv_vector_t *self, zv_size_t target); bool zv_vector_insert( zv_vector_t *self, zv_universal_t content, zv_size_t after ); zv_universal_t zv_vector_remove( zv_vector_t *self, zv_size_t target ); zv_universal_t zv_vector_set( zv_vector_t *self, zv_universal_t content, zv_size_t target ); #endif