diff options
| author | Martin Kagamino Lehoux <martin@lehoux.net> | 2026-04-08 13:14:27 +0200 |
|---|---|---|
| committer | Martin Kagamino Lehoux <martin@lehoux.net> | 2026-04-08 13:15:01 +0200 |
| commit | cf534d762754860ed5b714974f99acd282d48b3b (patch) | |
| tree | bf22341cedfb50ee7bcd4e15f85add2329783f31 /src/std/vec.h | |
| parent | 630fcb1846aed16b9ab62bcf700f668883f4521f (diff) | |
Restructure into src/{std,json}/
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Diffstat (limited to 'src/std/vec.h')
| -rw-r--r-- | src/std/vec.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/std/vec.h b/src/std/vec.h new file mode 100644 index 0000000..32734ae --- /dev/null +++ b/src/std/vec.h @@ -0,0 +1,18 @@ +#pragma once +#include <stddef.h> +#include <stdint.h> + +#include "memory.h" +#include "types.h" + +typedef struct { + void *data; + size len; + size cap; + size tsize; + size align; +} Vec; +#define Vec_new(a, T, cap) _Vec_new(a, sizeof(T), cap, _Alignof(T)) +Vec _Vec_new(Arena *a, size tsize, size cap, size align); +void Vec_push(Arena *a, Vec *v, void *data); +#define Vec_get(v, T, pos) (T *)(v.data + v.tsize * pos) |
