#ifndef ARENA_H #define ARENA_H #include typedef struct arena arena_t; // Arena allocator for request-scoped allocations struct arena { char *buf; // memory buffer size_t size; // total size size_t used; // bytes used arena_t *next; // for chaining arenas (future) }; // Arena operations arena_t* arena_new(size_t size); void arena_free(arena_t *a); void* arena_alloc(arena_t *a, size_t size); char* arena_strdup(arena_t *a, const char *s, size_t len); void arena_reset(arena_t *a); #endif // ARENA_H