arena.ch

Declarations

Public Only
md
Publicnamespace
namespace md
CleanupEntry
Publicstruct
struct CleanupEntry { var instance_ptr : *void var cleanup_fn : func(*void) : void }
Arena
Publicstruct
struct Arena { var blocks : vector<*void> var cleanup_fns : vector<CleanupEntry> var current_ptr : *u8 var end_ptr : *u8 }
make
Publicfunction
func make() : Arena
allocate_block
Publicfunction
func allocate_block(self : &Arena, min_size : size_t) : void
allocate_size
Publicfunction
func allocate_size(self : &Arena, size : size_t, align : size_t) : *void
store_cleanup
Publicfunction
func store_cleanup(self : &Arena, obj : *void, cleanup_fn : func(*void) : void) : void
allocate_with_cleanup
Publicfunction
func allocate_with_cleanup(self : &Arena, obj_size : size_t, alignment : size_t, cleanup_fn : func(*void) : void) : *void
deinit
Publicfunction
func deinit(self : &Arena) : void
delete
Publicfunction
func delete(self : &Arena) : void
allocate
PublicfunctionExtension
func allocate<T>(builder : &Arena) : *T