nbos

nbos

https://git.tonybtw.com/nbos.git git://git.tonybtw.com/nbos.git
489 bytes raw
1
#ifndef NB_ARENA_H
2
#define NB_ARENA_H
3
4
#include <stddef.h>
5
6
typedef struct arena arena;
7
8
[[nodiscard]] arena *arena_create(size_t initial_capacity);
9
void  arena_destroy(arena *a);
10
11
[[nodiscard]] void *arena_alloc(arena *a, size_t size, size_t align);
12
[[nodiscard]] char *arena_strdup(arena *a, const char *s);
13
[[nodiscard]] char *arena_sprintf(arena *a, const char *fmt, ...);
14
15
void arena_reset(arena *a);
16
17
size_t arena_used(const arena *a);
18
size_t arena_capacity(const arena *a);
19
20
#endif