#include "arena.h" #include #include ArenaResult arena_init(size_t size) { void *buffer = malloc(size); if (buffer == NULL) { ArenaResult err = { .is_valid = false, .err = ARENA_BAD_ALLOC, }; return err; } if (size < 1) { ArenaResult err = { .is_valid = false, .err = ARENA_INVALID_SIZE, }; return err; } Arena new_arena = { .data = buffer, .size = size, .offset = 0, }; ArenaResult val = { .is_valid = true, .arena = new_arena, }; return val; } void arena_destroy(Arena *arena) { if (arena == NULL) { return; } arena->offset = 0; arena->size = 0; free(arena->data); }