#ifndef DYNARRAY_H_
#define DYNARRAY_H_
+#include <stdlib.h>
#include <stdbool.h>
typedef struct Dynarray Dynarray;
void *dynarray_data(Dynarray *dynarray);
void *dynarray_pointer_at(Dynarray *dynarray, size_t index);
void dynarray_replace_at(Dynarray *dynarray, size_t index, void *element);
+void dynarray_copy_to(Dynarray *dynarray, void *dest, size_t index);
void dynarray_clear(Dynarray *dynarray);
// O(1) amortized
// TODO(#981): dynarray_push should be called dynarray_push_copy
void dynarray_pop(Dynarray *dynarray, void *element);
bool dynarray_contains(const Dynarray *dynarray,
const void *element);
+
+void dynarray_swap(Dynarray *dynarray, size_t i, size_t j);
+
// O(N)
void dynarray_delete_at(Dynarray *dynarray, size_t index);
void dynarray_insert_before(Dynarray *dynarray, size_t index, void *element);