feat(header): added signatures for devolping further functions
This commit is contained in:
@@ -1,4 +1,39 @@
|
|||||||
#ifndef ARENA_H
|
#ifndef ARENA_H
|
||||||
#define ARENA_H
|
#define ARENA_H
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <inttypes.h>
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
void *data;
|
||||||
|
size_t size;
|
||||||
|
size_t offset;
|
||||||
|
} Arena;
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
ARENA_OK,
|
||||||
|
ARENA_BAD_ALLOC,
|
||||||
|
ARENA_OUT_OF_SPACE,
|
||||||
|
ARENA_NULL_ARG,
|
||||||
|
} ArenaErr;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
bool is_valid;
|
||||||
|
union {
|
||||||
|
ArenaErr err;
|
||||||
|
void *pointer;
|
||||||
|
};
|
||||||
|
} ArenaPointer;
|
||||||
|
|
||||||
|
Arena arena_init(void *buffer, size_t size);
|
||||||
|
void arena_destroy(Arena *arena);
|
||||||
|
|
||||||
|
ArenaPointer arena_alloc(Arena *arena, size_t size, size_t alignment);
|
||||||
|
ArenaPointer arena_push(Arena *arena, void *data);
|
||||||
|
ArenaErr arena_realloc(Arena *arena, size_t new_size);
|
||||||
|
|
||||||
|
size_t align_arena_offset(Arena *arena, size_t alignment);
|
||||||
|
|
||||||
#endif // !ARENA_H
|
#endif // !ARENA_H
|
||||||
|
|||||||
Reference in New Issue
Block a user