#ifndef _VECTOR
#define _VECTOR

#include "Types.h"
#include "MemoryManager.h"

typedef void* Vector;

Vector V_new(MemoryManager *mm, usize element_size, usize length);
usize  V_length(Vector arr);
usize  V_count(Vector arr);
void*  V_top(Vector arr);
Result V_push(Vector *arr, void *pointer_to_value);
Result V_pushp(Vector* *arr, void *value);
Result V_pop(Vector *arr);
Result V_free(Vector *arr);

#endif /* _VECTOR */
