struct Vector; int vector_new_with( size_t capacity, size_t max_capacity, size_t multiplier, size_t value_size, const struct Vector **out ); int vector_new(size_t value_size, const struct Vector **out); void vector_free(const struct Vector **v); size_t vector_capacity(const struct Vector *v); size_t vector_count(const struct Vector *v); int vector_nth(const struct Vector *v, size_t idx, const void **out); int vector_assign(const struct Vector *v, size_t idx, const void *value); int vector_push_back(const struct Vector *v, const void *value); int vector_pop_back(const struct Vector *v, const void **out); bool vector_contains(const struct Vector *v, const void *value);