diff options
| author | Martin Kagamino Lehoux <martin@lehoux.net> | 2025-07-23 19:39:13 +0200 |
|---|---|---|
| committer | Martin Kagamino Lehoux <martin@lehoux.net> | 2025-07-23 19:39:26 +0200 |
| commit | 421300c27123ca647772dc6d9bd0cabf7f5f9c99 (patch) | |
| tree | d916b62056b2440aef374b21373d16272bb709ee /include/vec.h | |
| parent | 53e9e371a16ae2d167f1fc2577dff2c2426eed68 (diff) | |
refactor: src & pragma once
Diffstat (limited to 'include/vec.h')
| -rw-r--r-- | include/vec.h | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/include/vec.h b/include/vec.h new file mode 100644 index 0000000..bf6729b --- /dev/null +++ b/include/vec.h @@ -0,0 +1,19 @@ +#pragma once +#include <stddef.h> +#include <stdint.h> + +#include "../include/memory.h" +#include "../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, p) (T *)_Vec_get(v, p) +void *_Vec_get(Vec v, size pos); |
