Files
corelang/memory.h

20 lines
534 B
C

typedef struct Arena{
OS_Memory memory;
U64 len;
U64 alignment;
}Arena;
typedef struct Arena_Checkpoint{
Arena *arena;
SizeU pos;
} Arena_Checkpoint;
function B32 string_compare(String a, String b);
function void *arena_push_size(Arena *a, SizeU size);
function String arena_push_string_copy(Arena *arena, String string);
#define arena_push_array(a,T,c) (T *)arena_push_size(a,sizeof(T)*(c))
#define arena_push_struct(a,T) arena_push_array(a,T,1)
function Arena *arena_begin_scratch();
function void arena_end_scratch();