#ifndef _array

#define _array


// Macros



#include "stdlib.h"

extern char * __ClassNames[];


// Includes

#include <text.h>

#include <char.h>

#include <stdbool.h>

#include <stdlib.h>


typedef struct array{

	int capacity;

	int total;

	void * * items;


} array;

int array_length( array * this );

void * * array_data( array * this );

void * array_get( array * this, int index );

void array_set( array * this, int index,  void * item );

void array_resize( array * this, int capacity );

void array_add( array * this, void * item );

char * array_join( array * this, char * separator );

void array_delete( array * this, int index );

int array_array_push( array * this, void * item );

void array_unshift( array * this, void * item );

void * array_pop( array * this );

bool array_includes( array * this, char * value );

array array_new(  );

array * array_newPointer(  );

#endif


typedef struct array array;



