#ifndef ARRAYS_H
#define ARRAYS_H

#include <stdbool.h>

#include "DataType.h"

typedef struct {
    int size;
    int length;
    int next;
    int previous;
    void* data;
} Array;

typedef struct {
    int capacity;
    int usedStart;
    int freeStart;
    Array* data;
} Arrays;

void asInit(Arrays* as);
void asDelete(Arrays* as);
int asAllocate(Arrays* as, int typeSize, int length);
Array* asGet(Arrays* as, int p);
void asDeleteArray(Arrays* as, Array* a, int p);

#endif