| 71 | } |
| 72 | |
| 73 | void *hc_vector_insert(struct hc_vector *v, const size_t i, const size_t n) { |
| 74 | const size_t m = v->length+n; |
| 75 | if (m > v->capacity) { hc_vector_grow(v, m); } |
| 76 | uint8_t *const p = hc_vector_get(v, i); |
| 77 | |
| 78 | if (i < v->length) { |
| 79 | memmove(p + v->item_size*n, p, (v->length - i) * v->item_size); |
| 80 | } |
| 81 | |
| 82 | v->length += n; |
| 83 | v->end += n*v->item_size; |
| 84 | return p; |
| 85 | } |
| 86 | |
| 87 | bool hc_vector_delete(struct hc_vector *v, const size_t i, const size_t n) { |
| 88 | const size_t m = i+n; |