| 123456789101112131415161718192021222324252627282930313233343536373839 |
- #ifndef CX_ZIVUOS_VECTOR_H_INCLUDED
- #define CX_ZIVUOS_VECTOR_H_INCLUDED
- #include <stdint.h>
- #include <stddef.h>
- #include <stdbool.h>
- #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
|