#ifndef RR_ARENA_ALLOCATOR_H #define RR_ARENA_ALLOCATOR_H #include #include typedef struct rr_arena rr_arena_s; struct rr_arena { usz_t capacity; usz_t offset; char *allocation; rr_generic_allocator_s *allocator; }; rr_generic_arena_s rr_new_arena(rr_generic_allocator_s *allocator, usz_t capacity); void rr_destruct_arena(rr_generic_arena_s *generic_arena); void * rr_arena_alloc(rr_generic_arena_s *generic_arena, usz_t length); char * rr_arena_clone_string(rr_generic_arena_s *generic_arena, const char *string); #endif // RR_ARENA_ALLOCATOR_H