aboutsummaryrefslogtreecommitdiff
path: root/src/vec.c
diff options
context:
space:
mode:
authorKimplul <kimi.h.kuparinen@gmail.com>2025-03-18 19:58:30 +0200
committerKimplul <kimi.h.kuparinen@gmail.com>2025-03-18 19:58:47 +0200
commit7b5abecd2bef6b7441b0d850f95d451b441a6f76 (patch)
tree73d86891a41a7bcdb99a4d74f4613dff1f62c995 /src/vec.c
parent26b79b88ed724d89211e8c3afdebc3c747ef3f67 (diff)
downloadek-7b5abecd2bef6b7441b0d850f95d451b441a6f76.tar.gz
ek-7b5abecd2bef6b7441b0d850f95d451b441a6f76.zip
move to generic conts
Diffstat (limited to 'src/vec.c')
-rw-r--r--src/vec.c67
1 files changed, 0 insertions, 67 deletions
diff --git a/src/vec.c b/src/vec.c
deleted file mode 100644
index 89c5500..0000000
--- a/src/vec.c
+++ /dev/null
@@ -1,67 +0,0 @@
-/* SPDX-License-Identifier: copyleft-next-0.3.1 */
-
-#include <stdlib.h>
-#include <assert.h>
-#include <string.h>
-
-#include <ek/vec.h>
-
-struct vec vec_create(size_t ns)
-{
- return (struct vec) {
- .n = 0,
- .s = 1,
- .ns = ns,
- .buf = malloc(ns),
- };
-}
-
-size_t vec_len(struct vec *v)
-{
- return v->n;
-}
-
-void *vec_at(struct vec *v, size_t i)
-{
- assert(i < v->n && "out of vector bounds");
- return v->buf + i * v->ns;
-}
-
-void *vec_back(struct vec *v)
-{
- assert(v->n);
- return v->buf + (v->n - 1) * v->ns;
-}
-
-void *vec_pop(struct vec *v)
-{
- assert(v->n && "attempting to pop empty vector");
- v->n--;
- return v->buf + v->n * v->ns;
-}
-
-void vec_append(struct vec *v, void *n)
-{
- v->n++;
- if (v->n >= v->s) {
- v->s *= 2;
- v->buf = realloc(v->buf, v->s * v->ns);
- }
-
- void *p = vec_at(v, v->n - 1);
- memcpy(p, n, v->ns);
-}
-
-void vec_reset(struct vec *v)
-{
- v->n = 0;
-}
-
-void vec_destroy(struct vec *v) {
- free(v->buf);
-}
-
-void vec_sort(struct vec *v, vec_comp_t comp)
-{
- qsort(v->buf, v->n, v->ns, comp);
-}