blob: 8ff03328fccc89a81f2275a986ad1795e83627c4 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
#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, pos) (T *)(v.data + v.tsize * pos)
|