#ifndef INCLUDED_C_ARRAYSTACK_H #define INCLUDED_C_ARRAYSTACK_H #ifndef INCLUDED_C_TYPES_H #include #endif /*INCLUDED_C_TYPES_H*/ /* ------------------------------------------------------------------------------------------------------------------ */ /* */ typedef struct { void* array; int obj_size; c_size_t capacity; c_size_t size; } c_ArrayStack_t; c_err_t c_ArrayStack_Init(c_ArrayStack_t* self, int obj_size, c_size_t capacity); void c_ArrayStack_Destroy(c_ArrayStack_t* self); c_err_t c_ArrayStack_Push(c_ArrayStack_t* self, void* obj); c_err_t c_ArrayStack_Pop(c_ArrayStack_t* self, void* obj); void* c_ArrayStack_Peek(c_ArrayStack_t* self); c_err_t c_ArrayStack_Remove(c_ArrayStack_t* self, c_size_t index); C_STATIC_FORCE_INLINE c_bool_t c_ArrayStack_IsEmpty(c_ArrayStack_t* self) { return self->size == 0; } #endif /*INCLUDED_C_ARRAYSTACK_H*/