41 lines
1.0 KiB
C
41 lines
1.0 KiB
C
#ifndef __DYNARR_H__
|
|
#define __DYNARR_H__
|
|
#include "user_interface.h"
|
|
#include "c_stdio.h"
|
|
#include "c_stdlib.h"
|
|
|
|
//#define DYNARR_DEBUG
|
|
//#define DYNARR_ERROR
|
|
|
|
|
|
typedef struct _dynarr{
|
|
void* data_ptr;
|
|
size_t used;
|
|
size_t array_size;
|
|
size_t data_size;
|
|
} dynarr_t;
|
|
|
|
bool dynarr_init(dynarr_t* array_ptr, size_t array_size, size_t data_size);
|
|
bool dynarr_resize(dynarr_t* array_ptr, size_t elements_to_add);
|
|
bool dynarr_remove(dynarr_t* array_ptr, void* element_ptr);
|
|
bool dynarr_add(dynarr_t* array_ptr, void* data_ptr, size_t data_size);
|
|
bool dynarr_boundaryCheck(dynarr_t* array_ptr, void* element_ptr);
|
|
bool dynarr_free(dynarr_t* array_ptr);
|
|
|
|
|
|
#if 0 || defined(DYNARR_DEBUG) || defined(NODE_DEBUG)
|
|
#define DYNARR_DBG(fmt, ...) c_printf("\n DYNARR_DBG(%s): "fmt"\n", __FUNCTION__, ##__VA_ARGS__)
|
|
#else
|
|
#define DYNARR_DBG(...)
|
|
|
|
#endif
|
|
|
|
#if 0 || defined(DYNARR_ERROR) || defined(NODE_ERROR)
|
|
#define DYNARR_ERR(fmt, ...) c_printf("\n DYNARR: "fmt"\n", ##__VA_ARGS__)
|
|
#else
|
|
#define DYNARR_ERR(...)
|
|
|
|
#endif
|
|
|
|
#endif // __DYNARR_H__
|