aboutsummaryrefslogtreecommitdiff
#ifndef ARRAY_H
#define ARRAY_H

#include <stdbool.h>

typedef struct
{
    char *data;
    unsigned int length;
} Array;

extern Array *array_create(unsigned int type_size);
extern Array *array_create_by_size(unsigned int type_size, unsigned int reserved_size);

extern void array_append(Array *arr, void *data);
extern void array_insert(Array *arr, int index, void *data);
extern void array_remove(Array *arr, int index);
extern void array_reserve(Array *arr, unsigned int length);
extern unsigned int array_get_type_size(Array *arr);

extern void array_free(Array *arr);

#endif // ARRAY_H